{"version":3,"file":"static/js/main.6122edf6.js","mappings":"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","sources":["../../../../../../webpack/bootstrap","../../../../../../external \"prop-types\"","../../../../../../external \"react\"","../../../../../../src/Stack.tsx","../../../../../../src/Icon.tsx","../node_modules/bezier-easing/src/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/lodash.mergewith/index.js","../node_modules/lottie-react/compiled/hooks/useLottie.js","../node_modules/lottie-react/compiled/hooks/useLottieInteractivity.js","../node_modules/lottie-react/compiled/components/Lottie.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-ga4/dist/format.js","../node_modules/react-ga4/dist/ga4.js","../node_modules/react-ga4/dist/gtag.js","../node_modules/react-ga4/dist/index.js","../node_modules/react-spinners/BounceLoader.js","../node_modules/react-spinners/helpers/animation.js","../node_modules/react-spinners/helpers/unitConverter.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/parallax-controller/src/types.ts","../node_modules/parallax-controller/src/classes/Limits.ts","../node_modules/parallax-controller/src/utils/createId.ts","../node_modules/parallax-controller/src/classes/Rect.ts","../node_modules/parallax-controller/src/utils/parseValueAndUnit.ts","../node_modules/parallax-controller/src/constants.ts","../node_modules/parallax-controller/src/helpers/createEasingFunction.ts","../node_modules/parallax-controller/src/helpers/parseElementTransitionEffects.ts","../node_modules/parallax-controller/src/helpers/getProgressAmount.ts","../node_modules/parallax-controller/src/helpers/scaleEffectByProgress.ts","../node_modules/parallax-controller/src/utils/scaleBetween.ts","../node_modules/parallax-controller/src/helpers/elementStyles.ts","../node_modules/parallax-controller/src/helpers/getTranslateScalar.ts","../node_modules/parallax-controller/src/helpers/getStartEndValueInPx.ts","../node_modules/parallax-controller/src/helpers/createLimitsWithTranslationsForRelativeElements.ts","../node_modules/parallax-controller/src/helpers/clamp.ts","../node_modules/parallax-controller/src/classes/Element.ts","../node_modules/parallax-controller/src/helpers/getShouldScaleTranslateEffects.ts","../node_modules/parallax-controller/src/helpers/scaleTranslateEffectsForSlowerScroll.ts","../node_modules/parallax-controller/src/helpers/createLimitsForRelativeElements.ts","../node_modules/parallax-controller/src/helpers/isElementInView.ts","../node_modules/parallax-controller/src/classes/View.ts","../node_modules/parallax-controller/src/classes/Scroll.ts","../node_modules/parallax-controller/src/classes/ParallaxController.ts","../node_modules/parallax-controller/src/utils/testForPassiveScroll.ts","../node_modules/react-scroll-parallax/src/helpers/getIsolatedParallaxProps.ts","../node_modules/react-scroll-parallax/src/utils/removeUndefinedObjectKeys.ts","../node_modules/react-scroll-parallax/src/context/ParallaxContext.ts","../node_modules/react-scroll-parallax/src/hooks/useParallax.ts","../node_modules/react-scroll-parallax/src/hooks/useParallaxController.ts","../node_modules/react-scroll-parallax/src/components/Parallax/hooks.ts","../node_modules/react-scroll-parallax/src/components/ParallaxProvider/ParallaxProvider.tsx","../node_modules/react-scroll-parallax/src/components/ParallaxProvider/helpers.ts","ThemeContext.js","../node_modules/@fortawesome/fontawesome-svg-core/index.mjs","../node_modules/@fortawesome/react-fontawesome/index.es.js","../node_modules/@fortawesome/free-solid-svg-icons/index.mjs","../node_modules/react-icons/lib/iconContext.mjs","../node_modules/react-icons/lib/iconBase.mjs","../node_modules/react-icons/fa/index.mjs","Components/Toggle.js","../node_modules/@mdi/js/mdi.js","Components/NavbarDropdown.js","Components/Navbar.js","Components/ProjectCard.js","../node_modules/@fortawesome/free-brands-svg-icons/index.mjs","Components/Footer.js","Pages/Home.js","database.js","Components/LoadingModal.js","Pages/Projects.js","../node_modules/@egjs/component/src/utils.ts","../node_modules/@egjs/component/src/ActualComponentEvent.ts","../node_modules/@egjs/component/src/Component.ts","../node_modules/@egjs/component/src/ComponentEvent.ts","../node_modules/@egjs/list-differ/src/PolyMap.ts","../node_modules/@egjs/list-differ/src/HashMap.ts","../node_modules/@egjs/list-differ/src/consts.ts","../node_modules/@egjs/list-differ/src/Link.ts","../node_modules/@egjs/list-differ/src/Result.ts","../node_modules/@egjs/list-differ/src/utils.ts","../node_modules/@egjs/list-differ/src/ListDiffer.ts","../node_modules/@egjs/agent/src/utils.ts","../node_modules/@egjs/agent/src/presets.ts","../node_modules/@egjs/agent/src/userAgent.ts","../node_modules/@egjs/agent/src/userAgentData.ts","../node_modules/@egjs/agent/src/agent.ts","../node_modules/@cfcs/core/src/core/utils.ts","../node_modules/@cfcs/core/src/reactive/const.ts","../node_modules/@cfcs/core/src/reactive/detectDependencies.ts","../node_modules/@cfcs/core/src/reactive/Observer.ts","../node_modules/@cfcs/core/src/reactive/ComputedObserver.ts","../node_modules/@cfcs/core/src/reactive/decorators/Observe.ts","../node_modules/@cfcs/core/src/reactive/decorators/ReactiveSubscribe.ts","../node_modules/@cfcs/core/src/reactive/inline.ts","../node_modules/@cfcs/core/src/reactive/utils.ts","../node_modules/@cfcs/core/src/reactive/decorators/Computed.ts","../node_modules/@egjs/axes/src/browser.ts","../node_modules/@egjs/axes/src/const.ts","../node_modules/@egjs/axes/src/utils.ts","../node_modules/@egjs/axes/src/EventManager.ts","../node_modules/@egjs/axes/src/InterruptManager.ts","../node_modules/@egjs/axes/src/Coordinate.ts","../node_modules/@egjs/axes/src/AxisManager.ts","../node_modules/@egjs/axes/src/eventInput/EventInput.ts","../node_modules/@egjs/axes/src/eventInput/MouseEventInput.ts","../node_modules/@egjs/axes/src/eventInput/TouchEventInput.ts","../node_modules/@egjs/axes/src/eventInput/PointerEventInput.ts","../node_modules/@egjs/axes/src/eventInput/TouchMouseEventInput.ts","../node_modules/@egjs/axes/src/inputType/InputType.ts","../node_modules/@egjs/axes/src/InputObserver.ts","../node_modules/@egjs/axes/src/animation/AnimationManager.ts","../node_modules/@egjs/axes/src/animation/EasingManager.ts","../node_modules/@egjs/axes/src/Axes.ts","../node_modules/@egjs/axes/src/inputType/PanInput.ts","../node_modules/@egjs/imready/src/consts.ts","../node_modules/@egjs/imready/src/utils.ts","../node_modules/@egjs/imready/src/AutoSizer.ts","../node_modules/@egjs/imready/src/loaders/Loader.ts","../node_modules/@egjs/imready/src/loaders/ElementLoader.ts","../node_modules/@egjs/imready/src/ImReadyManager.ts","../node_modules/@egjs/imready/src/loaders/ImageLoader.ts","../node_modules/@egjs/imready/src/loaders/VideoLoader.ts","../node_modules/@egjs/imready/src/ImReady.ts","../node_modules/@egjs/flicking/src/const/error.ts","../node_modules/@egjs/flicking/src/control/states/State.ts","../node_modules/@egjs/flicking/src/const/external.ts","../node_modules/@egjs/flicking/src/utils.ts","../node_modules/@egjs/flicking/src/core/FlickingError.ts","../node_modules/@egjs/flicking/src/core/Viewport.ts","../node_modules/@egjs/flicking/src/core/AutoResizer.ts","../node_modules/@egjs/flicking/src/core/panel/provider/VanillaElementProvider.ts","../node_modules/@egjs/flicking/src/core/panel/provider/VirtualElementProvider.ts","../node_modules/@egjs/flicking/src/core/VirtualManager.ts","../node_modules/@egjs/flicking/src/const/axes.ts","../node_modules/@egjs/flicking/src/control/states/IdleState.ts","../node_modules/@egjs/flicking/src/control/states/HoldingState.ts","../node_modules/@egjs/flicking/src/control/states/DraggingState.ts","../node_modules/@egjs/flicking/src/control/states/AnimatingState.ts","../node_modules/@egjs/flicking/src/control/states/DisabledState.ts","../node_modules/@egjs/flicking/src/control/StateMachine.ts","../node_modules/@egjs/flicking/src/control/AxesController.ts","../node_modules/@egjs/flicking/src/control/Control.ts","../node_modules/@egjs/flicking/src/core/AnchorPoint.ts","../node_modules/@egjs/flicking/src/control/SnapControl.ts","../node_modules/@egjs/flicking/src/control/FreeControl.ts","../node_modules/@egjs/flicking/src/control/StrictControl.ts","../node_modules/@egjs/flicking/src/camera/mode/CameraMode.ts","../node_modules/@egjs/flicking/src/camera/mode/LinearCameraMode.ts","../node_modules/@egjs/flicking/src/camera/mode/CircularCameraMode.ts","../node_modules/@egjs/flicking/src/camera/mode/BoundCameraMode.ts","../node_modules/@egjs/flicking/src/camera/Camera.ts","../node_modules/@egjs/flicking/src/renderer/Renderer.ts","../node_modules/@egjs/flicking/src/renderer/VanillaRenderer.ts","../node_modules/@egjs/flicking/src/renderer/ExternalRenderer.ts","../node_modules/@egjs/flicking/src/core/panel/Panel.ts","../node_modules/@egjs/flicking/src/renderer/strategy/NormalRenderingStrategy.ts","../node_modules/@egjs/flicking/src/core/panel/VirtualPanel.ts","../node_modules/@egjs/flicking/src/renderer/strategy/VirtualRenderingStrategy.ts","../node_modules/@egjs/flicking/src/Flicking.ts","../node_modules/@egjs/flicking/src/cfc/withFlickingMethods.ts","../node_modules/@egjs/flicking/src/cfc/sync.ts","../node_modules/@egjs/flicking/src/cfc/getRenderingPanels.ts","../node_modules/@egjs/flicking/src/cfc/getDefaultCameraTransform.ts","../node_modules/@egjs/react-flicking/src/react-flicking/consts.ts","../node_modules/@egjs/react-flicking/src/react-flicking/ReactRenderer.ts","../node_modules/@egjs/react-flicking/src/react-flicking/StrictPanel.tsx","../node_modules/@egjs/react-flicking/src/react-flicking/NonStrictPanel.tsx","../node_modules/@egjs/react-flicking/src/react-flicking/ViewportSlot.tsx","../node_modules/@egjs/react-flicking/src/react-flicking/ReactElementProvider.ts","../node_modules/@egjs/react-flicking/src/react-flicking/Flicking.tsx","../node_modules/@egjs/flicking-plugins/src/Fade.ts","../node_modules/@egjs/flicking-plugins/src/AutoPlay.ts","../node_modules/@egjs/flicking-plugins/src/const.ts","../node_modules/@egjs/flicking-plugins/src/utils.ts","../node_modules/@egjs/flicking-plugins/src/Sync.ts","../node_modules/@egjs/flicking-plugins/src/Perspective.ts","Pages/About.js","Pages/Contact.js","Components/Project.js","Pages/Projects/Avengineers.js","Pages/Projects/Blazzi.js","Pages/Projects/Portfolio.js","Pages/Projects/ColorPalette.js","Pages/Projects/Set.js","Pages/Projects/Recipe.js","Pages/Projects/ProjectDemos/SetDemo.js","Pages/Projects/ProjectDemos/RecipeDemo.js","Pages/Projects/TodoTemplate.js","Pages/Projects/ProjectDemos/TodoTemplateDemo.js","Pages/Projects/LiveCourt.js","App.js","../node_modules/@chakra-ui/shared-utils/dist/index.mjs","../node_modules/@chakra-ui/theme/src/utils/is-chakra-theme.ts","../node_modules/@chakra-ui/theme/src/foundations/transition.ts","../node_modules/@chakra-ui/theme/src/foundations/z-index.ts","../node_modules/@chakra-ui/theme/src/foundations/borders.ts","../node_modules/@chakra-ui/theme/src/foundations/breakpoints.ts","../node_modules/@chakra-ui/theme/src/foundations/colors.ts","../node_modules/@chakra-ui/theme/src/foundations/radius.ts","../node_modules/@chakra-ui/theme/src/foundations/shadows.ts","../node_modules/@chakra-ui/theme/src/foundations/blur.ts","../node_modules/@chakra-ui/theme/src/foundations/typography.ts","../node_modules/@chakra-ui/theme/src/foundations/spacing.ts","../node_modules/@chakra-ui/theme/src/foundations/sizes.ts","../node_modules/@chakra-ui/theme/src/foundations/index.ts","../node_modules/@chakra-ui/styled-system/dist/index.mjs","../node_modules/@chakra-ui/theme/src/components/stepper.ts","../node_modules/@chakra-ui/anatomy/src/anatomy.ts","../node_modules/@chakra-ui/anatomy/src/components.ts","../node_modules/@chakra-ui/theme-tools/src/css-var.ts","../node_modules/@chakra-ui/theme-tools/src/css-calc.ts","../node_modules/@chakra-ui/theme/src/components/switch.ts","../node_modules/@chakra-ui/theme-tools/src/component.ts","../node_modules/@chakra-ui/theme/src/components/table.ts","../node_modules/color2k/src/guard.ts","../node_modules/color2k/src/ColorError.ts","../node_modules/color2k/src/parseToRgba.ts","../node_modules/color2k/src/rgba.ts","../node_modules/color2k/src/transparentize.ts","../node_modules/@chakra-ui/theme-tools/src/color.ts","../node_modules/.pnpm/dlv@1.1.3/node_modules/dlv/index.js","../node_modules/color2k/src/toHex.ts","../node_modules/@chakra-ui/theme/src/components/tabs.ts","../node_modules/@chakra-ui/theme/src/components/badge.ts","../node_modules/@chakra-ui/theme/src/components/tag.ts","../node_modules/@chakra-ui/theme/src/components/input.ts","../node_modules/@chakra-ui/theme/src/components/textarea.ts","../node_modules/@chakra-ui/theme/src/components/tooltip.ts","../node_modules/@chakra-ui/theme/src/components/progress.ts","../node_modules/@chakra-ui/theme/src/utils/run-if-fn.ts","../node_modules/@chakra-ui/theme/src/components/checkbox.ts","../node_modules/@chakra-ui/theme/src/components/select.ts","../node_modules/@chakra-ui/theme/src/components/radio.ts","../node_modules/@chakra-ui/theme/src/components/skeleton.ts","../node_modules/@chakra-ui/theme/src/components/skip-link.ts","../node_modules/@chakra-ui/theme/src/components/slider.ts","../node_modules/@chakra-ui/theme/src/components/spinner.ts","../node_modules/@chakra-ui/theme/src/components/stat.ts","../node_modules/@chakra-ui/theme/src/components/kbd.ts","../node_modules/@chakra-ui/theme/src/components/link.ts","../node_modules/@chakra-ui/theme/src/components/list.ts","../node_modules/@chakra-ui/theme/src/components/menu.ts","../node_modules/@chakra-ui/theme/src/components/modal.ts","../node_modules/@chakra-ui/theme/src/components/number-input.ts","../node_modules/@chakra-ui/theme/src/components/pin-input.ts","../node_modules/@chakra-ui/theme/src/components/popover.ts","../node_modules/@chakra-ui/theme/src/components/drawer.ts","../node_modules/@chakra-ui/theme/src/components/editable.ts","../node_modules/@chakra-ui/theme/src/components/form-control.ts","../node_modules/@chakra-ui/theme/src/components/form-error.ts","../node_modules/@chakra-ui/theme/src/components/form-label.ts","../node_modules/@chakra-ui/theme/src/components/heading.ts","../node_modules/@chakra-ui/theme/src/components/breadcrumb.ts","../node_modules/@chakra-ui/theme/src/components/button.ts","../node_modules/@chakra-ui/theme/src/components/card.ts","../node_modules/@chakra-ui/theme/src/components/close-button.ts","../node_modules/@chakra-ui/theme/src/components/code.ts","../node_modules/@chakra-ui/theme/src/components/container.ts","../node_modules/@chakra-ui/theme/src/components/divider.ts","../node_modules/@chakra-ui/theme/src/components/accordion.ts","../node_modules/@chakra-ui/theme/src/components/alert.ts","../node_modules/@chakra-ui/theme/src/components/avatar.ts","../node_modules/@chakra-ui/theme/src/components/index.ts","../node_modules/@chakra-ui/theme/src/semantic-tokens.ts","../node_modules/@chakra-ui/theme/src/styles.ts","../node_modules/@chakra-ui/theme/src/index.ts","../node_modules/@chakra-ui/theme-utils/dist/chunk-LIR5QAZY.mjs","theme.js","reportWebVitals.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-5486c51c.browser.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@chakra-ui/css-reset/src/css-reset.tsx","../node_modules/@chakra-ui/react-context/src/index.ts","../node_modules/@chakra-ui/portal/src/portal-manager.tsx","../node_modules/@chakra-ui/color-mode/src/color-mode-context.ts","../node_modules/@chakra-ui/utils/dist/chunk-YTQ3XZ3T.mjs","../node_modules/@chakra-ui/utils/dist/chunk-Y5FGD7DM.mjs","../node_modules/@chakra-ui/utils/dist/chunk-M3TFMUOL.mjs","../node_modules/@chakra-ui/system/src/providers.tsx","../node_modules/@chakra-ui/react-utils/dist/chunk-ITIKTQWJ.mjs","../node_modules/@chakra-ui/color-mode/src/color-mode.utils.ts","../node_modules/@chakra-ui/color-mode/src/storage-manager.ts","../node_modules/@chakra-ui/react-use-safe-layout-effect/src/index.ts","../node_modules/@chakra-ui/color-mode/src/color-mode-provider.tsx","../node_modules/@chakra-ui/react-env/src/env.tsx","../node_modules/@chakra-ui/provider/src/chakra-provider.tsx","../node_modules/@chakra-ui/toast/src/toast.utils.ts","../node_modules/@chakra-ui/react-use-timeout/src/index.ts","../node_modules/@chakra-ui/react-use-callback-ref/src/index.ts","../node_modules/@chakra-ui/react-use-update-effect/src/index.ts","../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../node_modules/framer-motion/dist/es/projection/node/state.mjs","../node_modules/framer-motion/dist/es/projection/node/id.mjs","../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/VisualElementHandler.mjs","../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","../node_modules/framer-motion/dist/es/motion/index.mjs","../node_modules/framer-motion/dist/es/motion/features/load-features.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../node_modules/style-value-types/dist/es/utils.mjs","../node_modules/style-value-types/dist/es/numbers/units.mjs","../node_modules/style-value-types/dist/es/numbers/index.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/html/use-props.mjs","../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../node_modules/framer-motion/dist/es/render/utils/types.mjs","../node_modules/framer-motion/dist/es/events/use-dom-event.mjs","../node_modules/framer-motion/dist/es/gestures/utils/event-type.mjs","../node_modules/framer-motion/dist/es/events/event-info.mjs","../node_modules/framer-motion/dist/es/events/use-pointer-event.mjs","../node_modules/framer-motion/dist/es/events/utils.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../node_modules/framer-motion/dist/es/gestures/use-hover-gesture.mjs","../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../node_modules/popmotion/dist/es/utils/pipe.mjs","../node_modules/framer-motion/dist/es/utils/process.mjs","../node_modules/framer-motion/dist/es/utils/warn-once.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/use-viewport.mjs","../node_modules/framer-motion/dist/es/motion/utils/make-renderless-component.mjs","../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../node_modules/framer-motion/dist/es/gestures/use-tap-gesture.mjs","../node_modules/framer-motion/dist/es/gestures/use-focus-gesture.mjs","../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../node_modules/tslib/tslib.es6.js","../node_modules/popmotion/dist/es/utils/clamp.mjs","../node_modules/popmotion/dist/es/animations/utils/find-spring.mjs","../node_modules/popmotion/dist/es/animations/generators/spring.mjs","../node_modules/popmotion/dist/es/utils/progress.mjs","../node_modules/popmotion/dist/es/utils/mix.mjs","../node_modules/style-value-types/dist/es/color/utils.mjs","../node_modules/style-value-types/dist/es/color/rgba.mjs","../node_modules/style-value-types/dist/es/color/hex.mjs","../node_modules/style-value-types/dist/es/color/hsla.mjs","../node_modules/popmotion/dist/es/utils/hsla-to-rgba.mjs","../node_modules/popmotion/dist/es/utils/mix-color.mjs","../node_modules/style-value-types/dist/es/color/index.mjs","../node_modules/style-value-types/dist/es/complex/index.mjs","../node_modules/popmotion/dist/es/utils/inc.mjs","../node_modules/popmotion/dist/es/utils/mix-complex.mjs","../node_modules/popmotion/dist/es/utils/interpolate.mjs","../node_modules/popmotion/dist/es/easing/utils.mjs","../node_modules/popmotion/dist/es/easing/index.mjs","../node_modules/popmotion/dist/es/animations/generators/keyframes.mjs","../node_modules/popmotion/dist/es/animations/utils/detect-animation-from-options.mjs","../node_modules/popmotion/dist/es/animations/generators/decay.mjs","../node_modules/framesync/dist/es/on-next-frame.mjs","../node_modules/framesync/dist/es/index.mjs","../node_modules/framesync/dist/es/create-render-step.mjs","../node_modules/popmotion/dist/es/animations/utils/elapsed.mjs","../node_modules/popmotion/dist/es/animations/index.mjs","../node_modules/popmotion/dist/es/utils/velocity-per-second.mjs","../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../node_modules/popmotion/dist/es/easing/cubic-bezier.mjs","../node_modules/framer-motion/dist/es/animation/utils/easing.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../node_modules/style-value-types/dist/es/complex/filter.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","../node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","../node_modules/popmotion/dist/es/animations/inertia.mjs","../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../node_modules/framer-motion/dist/es/utils/array.mjs","../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../node_modules/framer-motion/dist/es/value/index.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../node_modules/framer-motion/dist/es/render/utils/setters.mjs","../node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","../node_modules/framer-motion/dist/es/render/utils/animation.mjs","../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../node_modules/popmotion/dist/es/utils/is-point.mjs","../node_modules/popmotion/dist/es/utils/is-point-3d.mjs","../node_modules/popmotion/dist/es/utils/distance.mjs","../node_modules/framer-motion/dist/es/gestures/PanSession.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../node_modules/framer-motion/dist/es/gestures/use-pan-gesture.mjs","../node_modules/framer-motion/dist/es/gestures/drag/use-drag.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","../node_modules/framer-motion/dist/es/render/utils/lifecycles.mjs","../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../node_modules/framer-motion/dist/es/render/index.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","../node_modules/framer-motion/dist/es/render/html/visual-element.mjs","../node_modules/framer-motion/dist/es/render/svg/visual-element.mjs","../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/index.mjs","../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../node_modules/framer-motion/dist/es/animation/animate.mjs","../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../node_modules/framer-motion/dist/es/render/dom/motion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","../node_modules/@chakra-ui/system/src/should-forward-prop.ts","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/@chakra-ui/system/src/system.ts","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@chakra-ui/object-utils/dist/chunk-OLTBUDV5.mjs","../node_modules/@chakra-ui/system/src/factory.ts","../node_modules/@chakra-ui/toast/src/toast.component.tsx","../node_modules/@chakra-ui/system/src/forward-ref.tsx","../node_modules/@chakra-ui/system/src/hooks.ts","../node_modules/@chakra-ui/system/src/use-theme.ts","../node_modules/@chakra-ui/system/src/use-style-config.ts","../node_modules/@chakra-ui/icon/src/icon.tsx","../node_modules/@chakra-ui/alert/src/icons.tsx","../node_modules/@chakra-ui/spinner/src/spinner.tsx","../node_modules/@chakra-ui/alert/src/alert-context.ts","../node_modules/@chakra-ui/alert/src/alert.tsx","../node_modules/@chakra-ui/alert/src/alert-icon.tsx","../node_modules/@chakra-ui/alert/src/alert-title.tsx","../node_modules/@chakra-ui/alert/src/alert-description.tsx","../node_modules/@chakra-ui/close-button/src/close-button.tsx","../node_modules/@chakra-ui/toast/src/toast.store.ts","../node_modules/@chakra-ui/toast/src/toast.tsx","../node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","../node_modules/framer-motion/dist/es/utils/use-force-update.mjs","../node_modules/@chakra-ui/portal/src/portal.tsx","../node_modules/@chakra-ui/toast/src/toast.provider.tsx","../node_modules/@chakra-ui/react/src/chakra-provider.tsx","index.js"],"sourcesContent":[" \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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","import * as React from \"react\";\r\nimport { FunctionComponent, ValidationMap, ReactElement, CSSProperties } from \"react\";\r\nimport * as PropTypes from \"prop-types\";\r\nimport { StackProps } from './StackProps';\r\nimport { IconProps } from './IconProps';\r\n\r\nlet id = 0;\r\n\r\nconst Stack: FunctionComponent = React.forwardRef(({\r\n title = null,\r\n description = null,\r\n size = null,\r\n color = 'currentColor',\r\n horizontal = null,\r\n vertical = null,\r\n rotate = null,\r\n spin = null,\r\n style = {} as CSSProperties,\r\n children,\r\n ...rest\r\n}, ref) => {\r\n id++;\r\n let anySpin = spin === null ? false : spin;\r\n const childrenWithProps = React.Children.map(children, (child) => {\r\n const childElement = child as ReactElement;\r\n if (anySpin !== true) {\r\n anySpin = (spin === null ? childElement.props.spin : spin) === true;\r\n }\r\n let scaledSize = childElement.props.size;\r\n if (typeof size === 'number' && typeof childElement.props.size === 'number') {\r\n scaledSize = childElement.props.size / size;\r\n }\r\n const props: Partial = {\r\n size: scaledSize,\r\n color: color === null ? childElement.props.color : color,\r\n horizontal: horizontal === null ? childElement.props.horizontal : horizontal,\r\n vertical: vertical === null ? childElement.props.vertical : vertical,\r\n rotate: rotate === null ? childElement.props.rotate : rotate,\r\n spin: spin === null ? childElement.props.spin : spin,\r\n inStack: true\r\n };\r\n return React.cloneElement(childElement, props);\r\n });\r\n if (size !== null) {\r\n style.width = typeof size === \"string\"\r\n ? size\r\n : `${size * 1.5}rem`;\r\n }\r\n let ariaLabelledby;\r\n let labelledById = `stack_labelledby_${id}`;\r\n let describedById = `stack_describedby_${id}`;\r\n let role;\r\n if (title) {\r\n ariaLabelledby = description\r\n ? `${labelledById} ${describedById}`\r\n : labelledById;\r\n } else {\r\n role = 'presentation';\r\n if (description) {\r\n throw new Error(\"title attribute required when description is set\");\r\n }\r\n }\r\n return (\r\n \r\n {title && {title}}\r\n {description && {description}}\r\n {anySpin && (\r\n \r\n )}\r\n {childrenWithProps}\r\n \r\n );\r\n});\r\n\r\nStack.displayName = 'Stack';\r\n\r\nStack.propTypes = {\r\n size: PropTypes.oneOfType([\r\n PropTypes.number,\r\n PropTypes.string\r\n ]),\r\n color: PropTypes.string,\r\n horizontal: PropTypes.bool,\r\n vertical: PropTypes.bool,\r\n rotate: PropTypes.number,\r\n spin: PropTypes.oneOfType([\r\n PropTypes.bool,\r\n PropTypes.number\r\n ]),\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]).isRequired,\r\n className: PropTypes.string,\r\n style: PropTypes.object\r\n} as ValidationMap;\r\n\r\nStack.defaultProps = {\r\n size: null,\r\n color: null,\r\n horizontal: null,\r\n vertical: null,\r\n rotate: null,\r\n spin: null\r\n};\r\n\r\nexport default Stack;\r\n","import * as React from \"react\";\r\nimport { FunctionComponent, ValidationMap, CSSProperties } from \"react\";\r\nimport * as PropTypes from \"prop-types\";\r\nimport { IconProps } from './IconProps';\r\n\r\nexport { default as Stack } from './Stack';\r\n\r\nlet idCounter = 0;\r\n\r\nexport const Icon: FunctionComponent = React.forwardRef(({\r\n path,\r\n id = ++idCounter,\r\n title = null,\r\n description = null,\r\n size = null,\r\n color = 'currentColor',\r\n horizontal = false,\r\n vertical = false,\r\n rotate = 0,\r\n spin = false,\r\n style = {} as CSSProperties,\r\n inStack = false,\r\n ...rest\r\n}, ref) => {\r\n const pathStyle: any = {};\r\n const transform = [];\r\n if (size !== null) {\r\n if (inStack) {\r\n transform.push(`scale(${size})`);\r\n } else {\r\n style.width = typeof size === \"string\"\r\n ? size\r\n : `${size * 1.5}rem`;\r\n style.height = style.width;\r\n }\r\n }\r\n if (horizontal) {\r\n transform.push(\"scaleX(-1)\");\r\n }\r\n if (vertical) {\r\n transform.push(\"scaleY(-1)\");\r\n }\r\n if (rotate !== 0) {\r\n transform.push(`rotate(${rotate}deg)`);\r\n }\r\n if (color !== null) {\r\n pathStyle.fill = color;\r\n }\r\n let pathElement = (\r\n \r\n );\r\n let transformElement = pathElement;\r\n if (transform.length > 0) {\r\n style.transform = transform.join(' ');\r\n style.transformOrigin = 'center';\r\n if (inStack) {\r\n transformElement = (\r\n \r\n {pathElement}\r\n \r\n \r\n )\r\n }\r\n }\r\n let spinElement = transformElement;\r\n const spinSec = spin === true || typeof spin !== 'number' ? 2 : spin;\r\n let inverse = !inStack && (horizontal || vertical);\r\n if (spinSec < 0) { inverse = !inverse }\r\n if (spin) {\r\n spinElement = (\r\n \r\n {transformElement}\r\n {!(horizontal || vertical || rotate !== 0) && (\r\n \r\n )}\r\n \r\n )\r\n }\r\n if (inStack) {\r\n return spinElement;\r\n }\r\n let ariaLabelledby;\r\n let labelledById = `icon_labelledby_${id}`;\r\n let describedById = `icon_describedby_${id}`;\r\n let role;\r\n if (title) {\r\n ariaLabelledby = description\r\n ? `${labelledById} ${describedById}`\r\n : labelledById;\r\n } else {\r\n role = 'presentation';\r\n if (description) {\r\n throw new Error(\"title attribute required when description is set\");\r\n }\r\n }\r\n return (\r\n \r\n {title && {title}}\r\n {description && {description}}\r\n {!inStack && spin && (\r\n inverse\r\n ? \r\n : \r\n )}\r\n {spinElement}\r\n \r\n );\r\n});\r\n\r\nIcon.displayName = 'Icon';\r\n\r\nIcon.propTypes = {\r\n path: PropTypes.string.isRequired,\r\n size: PropTypes.oneOfType([\r\n PropTypes.number,\r\n PropTypes.string\r\n ]),\r\n color: PropTypes.string,\r\n horizontal: PropTypes.bool,\r\n vertical: PropTypes.bool,\r\n rotate: PropTypes.number,\r\n spin: PropTypes.oneOfType([\r\n PropTypes.bool,\r\n PropTypes.number\r\n ]),\r\n style: PropTypes.object,\r\n inStack: PropTypes.bool,\r\n className: PropTypes.string\r\n} as ValidationMap;\r\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/28249\r\n\r\nIcon.defaultProps = {\r\n size: null,\r\n color: 'currentColor',\r\n horizontal: false,\r\n vertical: false,\r\n rotate: 0,\r\n spin: false\r\n};\r\n\r\nexport default Icon;\r\n","/**\n * https://github.com/gre/bezier-easing\n * BezierEasing - use bezier curve for transition easing function\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\n */\n\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\n\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\nfunction B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\nfunction C (aA1) { return 3.0 * aA1; }\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; }\n\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\nfunction getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); }\n\nfunction binarySubdivide (aX, aA, aB, mX1, mX2) {\n var currentX, currentT, i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n}\n\nfunction newtonRaphsonIterate (aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\n\nfunction LinearEasing (x) {\n return x;\n}\n\nmodule.exports = function bezier (mX1, mY1, mX2, mY2) {\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n\n if (mX1 === mY1 && mX2 === mY2) {\n return LinearEasing;\n }\n\n // Precompute samples table\n var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n\n function getTForX (aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n\n var initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n\n return function BezierEasing (x) {\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n};\n","'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","/** @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","'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 * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = mergeWith;\n","import lottie from \"lottie-web\";\nimport React, { useEffect, useRef, useState, } from \"react\";\nconst useLottie = (props, style) => {\n const { animationData, loop, autoplay, initialSegment, onComplete, onLoopComplete, onEnterFrame, onSegmentStart, onConfigReady, onDataReady, onDataFailed, onLoadedImages, onDOMLoaded, onDestroy, \n // Specified here to take them out from the 'rest'\n lottieRef, renderer, name, assetsPath, rendererSettings, \n // TODO: find a better way to extract the html props to avoid specifying\n // all the props that we want to exclude (as you can see above)\n ...rest } = props;\n const [animationLoaded, setAnimationLoaded] = useState(false);\n const animationInstanceRef = useRef();\n const animationContainer = useRef(null);\n /*\n ======================================\n INTERACTION METHODS\n ======================================\n */\n /**\n * Play\n */\n const play = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.play();\n };\n /**\n * Stop\n */\n const stop = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.stop();\n };\n /**\n * Pause\n */\n const pause = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.pause();\n };\n /**\n * Set animation speed\n * @param speed\n */\n const setSpeed = (speed) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSpeed(speed);\n };\n /**\n * Got to frame and play\n * @param value\n * @param isFrame\n */\n const goToAndPlay = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndPlay(value, isFrame);\n };\n /**\n * Got to frame and stop\n * @param value\n * @param isFrame\n */\n const goToAndStop = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndStop(value, isFrame);\n };\n /**\n * Set animation direction\n * @param direction\n */\n const setDirection = (direction) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setDirection(direction);\n };\n /**\n * Play animation segments\n * @param segments\n * @param forceFlag\n */\n const playSegments = (segments, forceFlag) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.playSegments(segments, forceFlag);\n };\n /**\n * Set sub frames\n * @param useSubFrames\n */\n const setSubframe = (useSubFrames) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSubframe(useSubFrames);\n };\n /**\n * Get animation duration\n * @param inFrames\n */\n const getDuration = (inFrames) => { var _a; return (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.getDuration(inFrames); };\n /**\n * Destroy animation\n */\n const destroy = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Removing the reference to the animation so separate cleanups are skipped.\n // Without it the internal `lottie-react` instance throws exceptions as it already cleared itself on destroy.\n animationInstanceRef.current = undefined;\n };\n /*\n ======================================\n LOTTIE\n ======================================\n */\n /**\n * Load a new animation, and if it's the case, destroy the previous one\n * @param {Object} forcedConfigs\n */\n const loadAnimation = (forcedConfigs = {}) => {\n var _a;\n // Return if the container ref is null\n if (!animationContainer.current) {\n return;\n }\n // Destroy any previous instance\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Build the animation configuration\n const config = {\n ...props,\n ...forcedConfigs,\n container: animationContainer.current,\n };\n // Save the animation instance\n animationInstanceRef.current = lottie.loadAnimation(config);\n setAnimationLoaded(!!animationInstanceRef.current);\n // Return a function that will clean up\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n animationInstanceRef.current = undefined;\n };\n };\n /**\n * (Re)Initialize when animation data changed\n */\n useEffect(() => {\n const onUnmount = loadAnimation();\n // Clean up on unmount\n return () => onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animationData, loop]);\n // Update the autoplay state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n animationInstanceRef.current.autoplay = !!autoplay;\n }, [autoplay]);\n // Update the initial segment state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n // When null should reset to default animation length\n if (!initialSegment) {\n animationInstanceRef.current.resetSegments(true);\n return;\n }\n // If it's not a valid segment, do nothing\n if (!Array.isArray(initialSegment) || !initialSegment.length) {\n return;\n }\n // If the current position it's not in the new segment\n // set the current position to start\n if (animationInstanceRef.current.currentRawFrame < initialSegment[0] ||\n animationInstanceRef.current.currentRawFrame > initialSegment[1]) {\n animationInstanceRef.current.currentRawFrame = initialSegment[0];\n }\n // Update the segment\n animationInstanceRef.current.setSegment(initialSegment[0], initialSegment[1]);\n }, [initialSegment]);\n /*\n ======================================\n EVENTS\n ======================================\n */\n /**\n * Reinitialize listener on change\n */\n useEffect(() => {\n const partialListeners = [\n { name: \"complete\", handler: onComplete },\n { name: \"loopComplete\", handler: onLoopComplete },\n { name: \"enterFrame\", handler: onEnterFrame },\n { name: \"segmentStart\", handler: onSegmentStart },\n { name: \"config_ready\", handler: onConfigReady },\n { name: \"data_ready\", handler: onDataReady },\n { name: \"data_failed\", handler: onDataFailed },\n { name: \"loaded_images\", handler: onLoadedImages },\n { name: \"DOMLoaded\", handler: onDOMLoaded },\n { name: \"destroy\", handler: onDestroy },\n ];\n const listeners = partialListeners.filter((listener) => listener.handler != null);\n if (!listeners.length) {\n return;\n }\n const deregisterList = listeners.map(\n /**\n * Handle the process of adding an event listener\n * @param {Listener} listener\n * @return {Function} Function that deregister the listener\n */\n (listener) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener(listener.name, listener.handler);\n // Return a function to deregister this listener\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(listener.name, listener.handler);\n };\n });\n // Deregister listeners on unmount\n return () => {\n deregisterList.forEach((deregister) => deregister());\n };\n }, [\n onComplete,\n onLoopComplete,\n onEnterFrame,\n onSegmentStart,\n onConfigReady,\n onDataReady,\n onDataFailed,\n onLoadedImages,\n onDOMLoaded,\n onDestroy,\n ]);\n /**\n * Build the animation view\n */\n const View = React.createElement(\"div\", { style: style, ref: animationContainer, ...rest });\n return {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef: animationContainer,\n animationLoaded,\n animationItem: animationInstanceRef.current,\n };\n};\nexport default useLottie;\n","import { useEffect } from \"react\";\n// helpers\nexport function getContainerVisibility(container) {\n const { top, height } = container.getBoundingClientRect();\n const current = window.innerHeight - top;\n const max = window.innerHeight + height;\n return current / max;\n}\nexport function getContainerCursorPosition(container, cursorX, cursorY) {\n const { top, left, width, height } = container.getBoundingClientRect();\n const x = (cursorX - left) / width;\n const y = (cursorY - top) / height;\n return { x, y };\n}\nexport const useInitInteractivity = ({ wrapperRef, animationItem, mode, actions, }) => {\n useEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper || !animationItem || !actions.length) {\n return;\n }\n animationItem.stop();\n const scrollModeHandler = () => {\n let assignedSegment = null;\n const scrollHandler = () => {\n const currentPercent = getContainerVisibility(wrapper);\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ visibility }) => visibility &&\n currentPercent >= visibility[0] &&\n currentPercent <= visibility[1]);\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n if (action.type === \"seek\" &&\n action.visibility &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const frameToGo = action.frames[0] +\n Math.ceil(((currentPercent - action.visibility[0]) /\n (action.visibility[1] - action.visibility[0])) *\n action.frames[1]);\n //! goToAndStop must be relative to the start of the current segment\n animationItem.goToAndStop(frameToGo - animationItem.firstFrame - 1, true);\n }\n if (action.type === \"loop\") {\n // Loop: Loop a given frames\n if (assignedSegment === null) {\n // if not playing any segments currently. play those segments and save to state\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else {\n // if playing any segments currently.\n //check if segments in state are equal to the frames selected by action\n if (assignedSegment !== action.frames) {\n // if they are not equal. new segments are to be loaded\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else if (animationItem.isPaused) {\n // if they are equal the play method must be called only if lottie is paused\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n }\n }\n if (action.type === \"play\" && animationItem.isPaused) {\n // Play: Reset segments and continue playing full animation from current position\n animationItem.resetSegments(true);\n animationItem.play();\n }\n if (action.type === \"stop\") {\n // Stop: Stop playback\n animationItem.goToAndStop(action.frames[0] - animationItem.firstFrame - 1, true);\n }\n };\n document.addEventListener(\"scroll\", scrollHandler);\n return () => {\n document.removeEventListener(\"scroll\", scrollHandler);\n };\n };\n const cursorModeHandler = () => {\n const handleCursor = (_x, _y) => {\n let x = _x;\n let y = _y;\n // Resolve cursor position if cursor is inside container\n if (x !== -1 && y !== -1) {\n // Get container cursor position\n const pos = getContainerCursorPosition(wrapper, x, y);\n // Use the resolved position\n x = pos.x;\n y = pos.y;\n }\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ position }) => {\n if (position &&\n Array.isArray(position.x) &&\n Array.isArray(position.y)) {\n return (x >= position.x[0] &&\n x <= position.x[1] &&\n y >= position.y[0] &&\n y <= position.y[1]);\n }\n if (position &&\n !Number.isNaN(position.x) &&\n !Number.isNaN(position.y)) {\n return x === position.x && y === position.y;\n }\n return false;\n });\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n // Process action types:\n if (action.type === \"seek\" &&\n action.position &&\n Array.isArray(action.position.x) &&\n Array.isArray(action.position.y) &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const xPercent = (x - action.position.x[0]) /\n (action.position.x[1] - action.position.x[0]);\n const yPercent = (y - action.position.y[0]) /\n (action.position.y[1] - action.position.y[0]);\n animationItem.playSegments(action.frames, true);\n animationItem.goToAndStop(Math.ceil(((xPercent + yPercent) / 2) *\n (action.frames[1] - action.frames[0])), true);\n }\n if (action.type === \"loop\") {\n animationItem.playSegments(action.frames, true);\n }\n if (action.type === \"play\") {\n // Play: Reset segments and continue playing full animation from current position\n if (animationItem.isPaused) {\n animationItem.resetSegments(false);\n }\n animationItem.playSegments(action.frames);\n }\n if (action.type === \"stop\") {\n animationItem.goToAndStop(action.frames[0], true);\n }\n };\n const mouseMoveHandler = (ev) => {\n handleCursor(ev.clientX, ev.clientY);\n };\n const mouseOutHandler = () => {\n handleCursor(-1, -1);\n };\n wrapper.addEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.addEventListener(\"mouseout\", mouseOutHandler);\n return () => {\n wrapper.removeEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.removeEventListener(\"mouseout\", mouseOutHandler);\n };\n };\n switch (mode) {\n case \"scroll\":\n return scrollModeHandler();\n case \"cursor\":\n return cursorModeHandler();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mode, animationItem]);\n};\nconst useLottieInteractivity = ({ actions, mode, lottieObj, }) => {\n const { animationItem, View, animationContainerRef } = lottieObj;\n useInitInteractivity({\n actions,\n animationItem,\n mode,\n wrapperRef: animationContainerRef,\n });\n return View;\n};\nexport default useLottieInteractivity;\n","import { useEffect } from \"react\";\nimport useLottie from \"../hooks/useLottie\";\nimport useLottieInteractivity from \"../hooks/useLottieInteractivity\";\nconst Lottie = (props) => {\n var _a, _b, _c;\n const { style, interactivity, ...lottieProps } = props;\n /**\n * Initialize the 'useLottie' hook\n */\n const { View, play, stop, pause, setSpeed, goToAndStop, goToAndPlay, setDirection, playSegments, setSubframe, getDuration, destroy, animationContainerRef, animationLoaded, animationItem, } = useLottie(lottieProps, style);\n /**\n * Make the hook variables/methods available through the provided 'lottieRef'\n */\n useEffect(() => {\n if (props.lottieRef) {\n props.lottieRef.current = {\n play,\n stop,\n pause,\n setSpeed,\n goToAndPlay,\n goToAndStop,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(_a = props.lottieRef) === null || _a === void 0 ? void 0 : _a.current]);\n return useLottieInteractivity({\n lottieObj: {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n },\n actions: (_b = interactivity === null || interactivity === void 0 ? void 0 : interactivity.actions) !== null && _b !== void 0 ? _b : [],\n mode: (_c = interactivity === null || interactivity === void 0 ? void 0 : interactivity.mode) !== null && _c !== void 0 ? _c : \"scroll\",\n });\n};\nexport default Lottie;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\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\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","/**\n * Copyright (c) 2013-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\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-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\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\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\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(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 z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(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){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(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(ra,\nsa);z[b]=new v(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(ra,sa);z[b]=new v(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(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(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 ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction 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 A({},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 ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(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\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(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 cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!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,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({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 ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(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}}var wb=null;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(p(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>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=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)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=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){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 Ne(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)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=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&&Ne(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&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;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}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)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=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(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&128))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 Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"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[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,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=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(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.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(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.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;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 yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(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 bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=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.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = format;\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i;\nfunction toTitleCase(string) {\n return string.toString().trim().replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== \":\" && (title.charAt(index + match.length) !== \"-\" || title.charAt(index - 1) === \"-\") && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}\n\n// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nfunction mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === \"string\" && s.indexOf(\"@\") !== -1;\n}\nvar redacted = \"REDACTED (Potential Email Address)\";\nfunction redactEmail(string) {\n if (mightBeEmail(string)) {\n console.warn(\"This arg looks like an email address, redacting.\");\n return redacted;\n }\n return string;\n}\nfunction format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var _str = s || \"\";\n if (titleCase) {\n _str = toTitleCase(s);\n }\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n return _str;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GA4 = void 0;\nvar _gtag = _interopRequireDefault(require(\"./gtag\"));\nvar _format = _interopRequireDefault(require(\"./format\"));\nvar _excluded = [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\", \"hitType\"],\n _excluded2 = [\"title\", \"location\"],\n _excluded3 = [\"page\", \"hitType\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/*\nLinks\nhttps://developers.google.com/gtagjs/reference/api\nhttps://developers.google.com/tag-platform/gtagjs/reference\n*/\n/**\n * @typedef GaOptions\n * @type {Object}\n * @property {boolean} [cookieUpdate=true]\n * @property {number} [cookieExpires=63072000] Default two years\n * @property {string} [cookieDomain=\"auto\"]\n * @property {string} [cookieFlags]\n * @property {string} [userId]\n * @property {string} [clientId]\n * @property {boolean} [anonymizeIp]\n * @property {string} [contentGroup1]\n * @property {string} [contentGroup2]\n * @property {string} [contentGroup3]\n * @property {string} [contentGroup4]\n * @property {string} [contentGroup5]\n * @property {boolean} [allowAdFeatures=true]\n * @property {boolean} [allowAdPersonalizationSignals]\n * @property {boolean} [nonInteraction]\n * @property {string} [page]\n */\n/**\n * @typedef UaEventOptions\n * @type {Object}\n * @property {string} action\n * @property {string} category\n * @property {string} [label]\n * @property {number} [value]\n * @property {boolean} [nonInteraction]\n * @property {('beacon'|'xhr'|'image')} [transport]\n */\n/**\n * @typedef InitOptions\n * @type {Object}\n * @property {string} trackingId\n * @property {GaOptions|any} [gaOptions]\n * @property {Object} [gtagOptions] New parameter\n */\nvar GA4 = /*#__PURE__*/function () {\n function GA4() {\n var _this = this;\n _classCallCheck(this, GA4);\n _defineProperty(this, \"reset\", function () {\n _this.isInitialized = false;\n _this._testMode = false;\n _this._currentMeasurementId;\n _this._hasLoadedGA = false;\n _this._isQueuing = false;\n _this._queueGtag = [];\n });\n _defineProperty(this, \"_gtag\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!_this._testMode) {\n if (_this._isQueuing) {\n _this._queueGtag.push(args);\n } else {\n _gtag[\"default\"].apply(void 0, args);\n }\n } else {\n _this._queueGtag.push(args);\n }\n });\n _defineProperty(this, \"_loadGA\", function (GA_MEASUREMENT_ID, nonce) {\n var gtagUrl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"https://www.googletagmanager.com/gtag/js\";\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n if (!_this._hasLoadedGA) {\n // Global Site Tag (gtag.js) - Google Analytics\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = \"\".concat(gtagUrl, \"?id=\").concat(GA_MEASUREMENT_ID);\n if (nonce) {\n script.setAttribute(\"nonce\", nonce);\n }\n document.body.appendChild(script);\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n _this._hasLoadedGA = true;\n }\n });\n _defineProperty(this, \"_toGtagOptions\", function (gaOptions) {\n if (!gaOptions) {\n return;\n }\n var mapFields = {\n // Old https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#cookieUpdate\n // New https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id#cookie_update\n cookieUpdate: \"cookie_update\",\n cookieExpires: \"cookie_expires\",\n cookieDomain: \"cookie_domain\",\n cookieFlags: \"cookie_flags\",\n // must be in set method?\n userId: \"user_id\",\n clientId: \"client_id\",\n anonymizeIp: \"anonymize_ip\",\n // https://support.google.com/analytics/answer/2853546?hl=en#zippy=%2Cin-this-article\n contentGroup1: \"content_group1\",\n contentGroup2: \"content_group2\",\n contentGroup3: \"content_group3\",\n contentGroup4: \"content_group4\",\n contentGroup5: \"content_group5\",\n // https://support.google.com/analytics/answer/9050852?hl=en\n allowAdFeatures: \"allow_google_signals\",\n allowAdPersonalizationSignals: \"allow_ad_personalization_signals\",\n nonInteraction: \"non_interaction\",\n page: \"page_path\",\n hitCallback: \"event_callback\"\n };\n var gtagOptions = Object.entries(gaOptions).reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (mapFields[key]) {\n prev[mapFields[key]] = value;\n } else {\n prev[key] = value;\n }\n return prev;\n }, {});\n return gtagOptions;\n });\n _defineProperty(this, \"initialize\", function (GA_MEASUREMENT_ID) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!GA_MEASUREMENT_ID) {\n throw new Error(\"Require GA_MEASUREMENT_ID\");\n }\n var initConfigs = typeof GA_MEASUREMENT_ID === \"string\" ? [{\n trackingId: GA_MEASUREMENT_ID\n }] : GA_MEASUREMENT_ID;\n _this._currentMeasurementId = initConfigs[0].trackingId;\n var gaOptions = options.gaOptions,\n gtagOptions = options.gtagOptions,\n nonce = options.nonce,\n _options$testMode = options.testMode,\n testMode = _options$testMode === void 0 ? false : _options$testMode,\n gtagUrl = options.gtagUrl;\n _this._testMode = testMode;\n if (!testMode) {\n _this._loadGA(_this._currentMeasurementId, nonce, gtagUrl);\n }\n if (!_this.isInitialized) {\n _this._gtag(\"js\", new Date());\n initConfigs.forEach(function (config) {\n var mergedGtagOptions = _objectSpread(_objectSpread(_objectSpread({}, _this._toGtagOptions(_objectSpread(_objectSpread({}, gaOptions), config.gaOptions))), gtagOptions), config.gtagOptions);\n if (Object.keys(mergedGtagOptions).length) {\n _this._gtag(\"config\", config.trackingId, mergedGtagOptions);\n } else {\n _this._gtag(\"config\", config.trackingId);\n }\n });\n }\n _this.isInitialized = true;\n if (!testMode) {\n var queues = _toConsumableArray(_this._queueGtag);\n _this._queueGtag = [];\n _this._isQueuing = false;\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n if (queue[0] === \"get\") {\n _this._isQueuing = true;\n }\n }\n }\n });\n _defineProperty(this, \"set\", function (fieldsObject) {\n if (!fieldsObject) {\n console.warn(\"`fieldsObject` is required in .set()\");\n return;\n }\n if (_typeof(fieldsObject) !== \"object\") {\n console.warn(\"Expected `fieldsObject` arg to be an Object\");\n return;\n }\n if (Object.keys(fieldsObject).length === 0) {\n console.warn(\"empty `fieldsObject` given to .set()\");\n }\n _this._gaCommand(\"set\", fieldsObject);\n });\n _defineProperty(this, \"_gaCommandSendEvent\", function (eventCategory, eventAction, eventLabel, eventValue, fieldsObject) {\n _this._gtag(\"event\", eventAction, _objectSpread(_objectSpread({\n event_category: eventCategory,\n event_label: eventLabel,\n value: eventValue\n }, fieldsObject && {\n non_interaction: fieldsObject.nonInteraction\n }), _this._toGtagOptions(fieldsObject)));\n });\n _defineProperty(this, \"_gaCommandSendEventParameters\", function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendEvent.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$ = args[0],\n eventCategory = _args$.eventCategory,\n eventAction = _args$.eventAction,\n eventLabel = _args$.eventLabel,\n eventValue = _args$.eventValue,\n hitType = _args$.hitType,\n rest = _objectWithoutProperties(_args$, _excluded);\n _this._gaCommandSendEvent(eventCategory, eventAction, eventLabel, eventValue, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSendTiming\", function (timingCategory, timingVar, timingValue, timingLabel) {\n _this._gtag(\"event\", \"timing_complete\", {\n name: timingVar,\n value: timingValue,\n event_category: timingCategory,\n event_label: timingLabel\n });\n });\n _defineProperty(this, \"_gaCommandSendPageview\", function (page, fieldsObject) {\n if (fieldsObject && Object.keys(fieldsObject).length) {\n var _this$_toGtagOptions = _this._toGtagOptions(fieldsObject),\n title = _this$_toGtagOptions.title,\n location = _this$_toGtagOptions.location,\n rest = _objectWithoutProperties(_this$_toGtagOptions, _excluded2);\n _this._gtag(\"event\", \"page_view\", _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, page && {\n page_path: page\n }), title && {\n page_title: title\n }), location && {\n page_location: location\n }), rest));\n } else if (page) {\n _this._gtag(\"event\", \"page_view\", {\n page_path: page\n });\n } else {\n _this._gtag(\"event\", \"page_view\");\n }\n });\n _defineProperty(this, \"_gaCommandSendPageviewParameters\", function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendPageview.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$2 = args[0],\n page = _args$2.page,\n hitType = _args$2.hitType,\n rest = _objectWithoutProperties(_args$2, _excluded3);\n _this._gaCommandSendPageview(page, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSend\", function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n var hitType = typeof args[0] === \"string\" ? args[0] : args[0].hitType;\n switch (hitType) {\n case \"event\":\n _this._gaCommandSendEventParameters.apply(_this, args);\n break;\n case \"pageview\":\n _this._gaCommandSendPageviewParameters.apply(_this, args);\n break;\n case \"timing\":\n _this._gaCommandSendTiming.apply(_this, _toConsumableArray(args.slice(1)));\n break;\n case \"screenview\":\n case \"transaction\":\n case \"item\":\n case \"social\":\n case \"exception\":\n console.warn(\"Unsupported send command: \".concat(hitType));\n break;\n default:\n console.warn(\"Send command doesn't exist: \".concat(hitType));\n }\n });\n _defineProperty(this, \"_gaCommandSet\", function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n if (typeof args[0] === \"string\") {\n args[0] = _defineProperty({}, args[0], args[1]);\n }\n _this._gtag(\"set\", _this._toGtagOptions(args[0]));\n });\n _defineProperty(this, \"_gaCommand\", function (command) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n switch (command) {\n case \"send\":\n _this._gaCommandSend.apply(_this, args);\n break;\n case \"set\":\n _this._gaCommandSet.apply(_this, args);\n break;\n default:\n console.warn(\"Command doesn't exist: \".concat(command));\n }\n });\n _defineProperty(this, \"ga\", function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommand.apply(_this, args);\n } else {\n var readyCallback = args[0];\n _this._gtag(\"get\", _this._currentMeasurementId, \"client_id\", function (clientId) {\n _this._isQueuing = false;\n var queues = _this._queueGtag;\n readyCallback({\n get: function get(property) {\n return property === \"clientId\" ? clientId : property === \"trackingId\" ? _this._currentMeasurementId : property === \"apiVersion\" ? \"1\" : undefined;\n }\n });\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n }\n });\n _this._isQueuing = true;\n }\n return _this.ga;\n });\n _defineProperty(this, \"event\", function (optionsOrName, params) {\n if (typeof optionsOrName === \"string\") {\n _this._gtag(\"event\", optionsOrName, _this._toGtagOptions(params));\n } else {\n var action = optionsOrName.action,\n category = optionsOrName.category,\n label = optionsOrName.label,\n value = optionsOrName.value,\n nonInteraction = optionsOrName.nonInteraction,\n transport = optionsOrName.transport;\n if (!category || !action) {\n console.warn(\"args.category AND args.action are required in event()\");\n return;\n }\n\n // Required Fields\n var fieldObject = {\n hitType: \"event\",\n eventCategory: (0, _format[\"default\"])(category),\n eventAction: (0, _format[\"default\"])(action)\n };\n\n // Optional Fields\n if (label) {\n fieldObject.eventLabel = (0, _format[\"default\"])(label);\n }\n if (typeof value !== \"undefined\") {\n if (typeof value !== \"number\") {\n console.warn(\"Expected `args.value` arg to be a Number.\");\n } else {\n fieldObject.eventValue = value;\n }\n }\n if (typeof nonInteraction !== \"undefined\") {\n if (typeof nonInteraction !== \"boolean\") {\n console.warn(\"`args.nonInteraction` must be a boolean.\");\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n if (typeof transport !== \"undefined\") {\n if (typeof transport !== \"string\") {\n console.warn(\"`args.transport` must be a string.\");\n } else {\n if ([\"beacon\", \"xhr\", \"image\"].indexOf(transport) === -1) {\n console.warn(\"`args.transport` must be either one of these values: `beacon`, `xhr` or `image`\");\n }\n fieldObject.transport = transport;\n }\n }\n _this._gaCommand(\"send\", fieldObject);\n }\n });\n _defineProperty(this, \"send\", function (fieldObject) {\n _this._gaCommand(\"send\", fieldObject);\n });\n this.reset();\n }\n _createClass(GA4, [{\n key: \"gtag\",\n value: function gtag() {\n this._gtag.apply(this, arguments);\n }\n }]);\n return GA4;\n}();\nexports.GA4 = GA4;\nvar _default = new GA4();\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar gtag = function gtag() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof window !== \"undefined\") {\n var _window;\n if (typeof window.gtag === \"undefined\") {\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n }\n (_window = window).gtag.apply(_window, args);\n }\n};\nvar _default = gtag;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ReactGAImplementation = void 0;\nvar _ga = _interopRequireWildcard(require(\"./ga4\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ReactGAImplementation = _ga.GA4;\nexports.ReactGAImplementation = ReactGAImplementation;\nvar _default = _ga[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\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)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n 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]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = __importStar(require(\"react\"));\nvar unitConverter_1 = require(\"./helpers/unitConverter\");\nvar animation_1 = require(\"./helpers/animation\");\nvar bounce = (0, animation_1.createAnimation)(\"BounceLoader\", \"0% {transform: scale(0)} 50% {transform: scale(1.0)} 100% {transform: scale(0)}\", \"bounce\");\nfunction BounceLoader(_a) {\n var _b = _a.loading, loading = _b === void 0 ? true : _b, _c = _a.color, color = _c === void 0 ? \"#000000\" : _c, _d = _a.speedMultiplier, speedMultiplier = _d === void 0 ? 1 : _d, _e = _a.cssOverride, cssOverride = _e === void 0 ? {} : _e, _f = _a.size, size = _f === void 0 ? 60 : _f, additionalprops = __rest(_a, [\"loading\", \"color\", \"speedMultiplier\", \"cssOverride\", \"size\"]);\n var style = function (i) {\n var animationTiming = i === 1 ? \"\".concat(1 / speedMultiplier, \"s\") : \"0s\";\n return {\n position: \"absolute\",\n height: (0, unitConverter_1.cssValue)(size),\n width: (0, unitConverter_1.cssValue)(size),\n backgroundColor: color,\n borderRadius: \"100%\",\n opacity: 0.6,\n top: 0,\n left: 0,\n animationFillMode: \"both\",\n animation: \"\".concat(bounce, \" \").concat(2.1 / speedMultiplier, \"s \").concat(animationTiming, \" infinite ease-in-out\"),\n };\n };\n var wrapper = __assign({ display: \"inherit\", position: \"relative\", width: (0, unitConverter_1.cssValue)(size), height: (0, unitConverter_1.cssValue)(size) }, cssOverride);\n if (!loading) {\n return null;\n }\n return (React.createElement(\"span\", __assign({ style: wrapper }, additionalprops),\n React.createElement(\"span\", { style: style(1) }),\n React.createElement(\"span\", { style: style(2) })));\n}\nexports.default = BounceLoader;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createAnimation = void 0;\nvar createAnimation = function (loaderName, frames, suffix) {\n var animationName = \"react-spinners-\".concat(loaderName, \"-\").concat(suffix);\n if (typeof window == \"undefined\" || !window.document) {\n return animationName;\n }\n var styleEl = document.createElement(\"style\");\n document.head.appendChild(styleEl);\n var styleSheet = styleEl.sheet;\n var keyFrames = \"\\n @keyframes \".concat(animationName, \" {\\n \").concat(frames, \"\\n }\\n \");\n if (styleSheet) {\n styleSheet.insertRule(keyFrames, 0);\n }\n return animationName;\n};\nexports.createAnimation = createAnimation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cssValue = exports.parseLengthAndUnit = void 0;\nvar cssUnit = {\n cm: true,\n mm: true,\n in: true,\n px: true,\n pt: true,\n pc: true,\n em: true,\n ex: true,\n ch: true,\n rem: true,\n vw: true,\n vh: true,\n vmin: true,\n vmax: true,\n \"%\": true,\n};\n/**\n * If size is a number, append px to the value as default unit.\n * If size is a string, validate against list of valid units.\n * If unit is valid, return size as is.\n * If unit is invalid, console warn issue, replace with px as the unit.\n *\n * @param {(number | string)} size\n * @return {LengthObject} LengthObject\n */\nfunction parseLengthAndUnit(size) {\n if (typeof size === \"number\") {\n return {\n value: size,\n unit: \"px\",\n };\n }\n var value;\n var valueString = (size.match(/^[0-9.]*/) || \"\").toString();\n if (valueString.includes(\".\")) {\n value = parseFloat(valueString);\n }\n else {\n value = parseInt(valueString, 10);\n }\n var unit = (size.match(/[^0-9]*$/) || \"\").toString();\n if (cssUnit[unit]) {\n return {\n value: value,\n unit: unit,\n };\n }\n console.warn(\"React Spinners: \".concat(size, \" is not a valid css value. Defaulting to \").concat(value, \"px.\"));\n return {\n value: value,\n unit: \"px\",\n };\n}\nexports.parseLengthAndUnit = parseLengthAndUnit;\n/**\n * Take value as an input and return valid css value\n *\n * @param {(number | string)} value\n * @return {string} valid css value\n */\nfunction cssValue(value) {\n var lengthWithunit = parseLengthAndUnit(value);\n return \"\".concat(lengthWithunit.value).concat(lengthWithunit.unit);\n}\nexports.cssValue = cssValue;\n","/**\n * @license React\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';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.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:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\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=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}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}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\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","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"af2c5179\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"anaisdawes:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\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\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkanaisdawes\"] = self[\"webpackChunkanaisdawes\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","////////////////////////////////////////////////////////////////////////////////\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// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\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: State;\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`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\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 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;\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\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\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(\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 {\n let location: Readonly = {\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) {\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 {\n let parsedPath: Partial = {};\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 // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\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 { invariant, parsePath, warning } 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: unknown;\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 // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\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\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData\n status?: number;\n}\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, 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;\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;\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?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n 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 | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\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 unstable_actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\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: ShouldRevalidateFunctionArgs): 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\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\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;\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([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : 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 {\n (): Promise>>;\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 | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\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;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\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 */\nexport type PathParam =\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\n : // look for params in the absence of wildcards\n _PathParam;\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 =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\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;\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 {}\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 | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | 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 // 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 let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\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[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\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 explode _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,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\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,\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(\n originalPath: Path,\n params: {\n [key in PathParam]: 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;\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];\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 {\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 {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\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 = {\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,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = 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 = compiledParams.reduce>(\n (memo, { paramName, isOptional }, 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 const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\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 params: CompiledPathParam[] = [];\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(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\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, params];\n}\n\nfunction decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\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\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\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 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 * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \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// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\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;\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 `` 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 (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\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 = (\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 {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, 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\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,\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 * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private 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 AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\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 future config for the router\n */\n get future(): FutureConfig;\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 * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\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,\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;\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;\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(key: string): Fetcher;\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;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\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;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n unstable_skipActionErrorRevalidation: 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;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_dataStrategy?: DataStrategyFunction;\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;\n actionHeaders: Record;\n activeDeferreds: Record | 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?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\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: UIMatch[]): 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 unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\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 = {\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 };\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 };\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 };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\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\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\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\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(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\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\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 let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n unstable_skipActionErrorRevalidation: 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();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | 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 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: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\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 initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\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 // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = 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();\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();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\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();\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();\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 if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\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 initialHydration: true,\n });\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 if (removePageHideEventListener) {\n removePageHideEventListener();\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(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\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>,\n { flushSync }: { flushSync?: boolean } = {}\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 let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\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 viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = 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 {\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 future.v7_relativeSplatPath,\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 flushSync = (opts && opts.unstable_flushSync) === true;\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 enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\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 initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\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 pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\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(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\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 \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 }, { flushSync });\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 pendingActionResult: PendingActionResult | 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 pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: 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 actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\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 opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\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 ...getActionDataForCommit(pendingActionResult),\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; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\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 let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\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 let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\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 pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n pendingActionResult: [actionMatch.route.id, result],\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 initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\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 future.v7_partialHydration && initialHydration === true,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\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(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\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 we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\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\n let actionData: Record | null | undefined;\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n actionData = {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n actionData = null;\n } else {\n actionData = state.actionData;\n }\n }\n\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\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 { 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([...loaderResults, ...fetcherResults]);\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(request, redirect.result, {\n replace,\n });\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 pendingActionResult,\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 // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\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 // 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 let flushSync = (opts && opts.unstable_flushSync) === true;\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 future.v7_relativeSplatPath,\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 { flushSync }\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, { flushSync });\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(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\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(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\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 flushSync: boolean,\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, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\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 actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by 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 // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\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 updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, {\n fetcherSubmission: submission,\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\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 false,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\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 { 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([...loaderResults, ...fetcherResults]);\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(revalidationRequest, 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 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 fetchers: new Map(state.fetchers),\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 flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\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 results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\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 // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\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 updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\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 request: Request,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(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 { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\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 let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\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 let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\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 {\n loaderResults,\n fetcherResults,\n };\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 updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\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 deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\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 component\n function enableScrollRestoration(\n positions: Record,\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 \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) => convertRouteMatchToUiMatch(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 future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\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: deleteFetcherAndUpdateState,\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\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\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 // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\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 * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\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(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\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 * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\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 unstable_dataStrategy || null,\n false,\n match\n );\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 unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | 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 unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\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 for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\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 unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | 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 let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\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.response.status,\n headers: {\n Location: result.response.headers.get(\"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 // 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\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 = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\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 : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\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 : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\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:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\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 // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\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: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\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 v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\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 getResolveToMatches(contextualMatches, v7_relativeSplatPath),\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?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\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 isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\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 =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (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\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\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 unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\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:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\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 unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : 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: ShouldRevalidateFunctionArgs\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 = {};\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\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\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 handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\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 runs 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, result: 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.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 // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type, status } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\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 if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\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 (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : status,\n };\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, statusCode: status };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\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 pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\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 = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\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 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 !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\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 // 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 } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\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 !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[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 pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\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\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\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 =\n routes.length === 1\n ? routes[0]\n : 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 ErrorResponseImpl(\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 isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\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 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 {\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\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 };\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 };\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 };\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 };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} 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 hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\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 hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\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 {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(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(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 unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\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 `` 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 future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\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(\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({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(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 UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\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 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 ``.\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 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 * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | 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 component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(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[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 ``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 component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\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(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 {\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 `` 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 {outlet}\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\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\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 { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\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 `` 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 | 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 | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\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 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 under a \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 // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) 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 to .`\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 \\`\\` 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\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\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 matches[matches.length - 1].route.lazy !== 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 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 future\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 \n {renderedMatches}\n \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

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\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 !== undefined ? 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 !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\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 \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | 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] !== undefined\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 // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\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 (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\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 // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\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 \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 React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, 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(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\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 let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\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 !== undefined) {\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 `` 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 `` 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(\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 = {};\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 type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\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 let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\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/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\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