{"version":3,"file":"static/js/main.3ae90271.js","mappings":"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K,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,MAAMC,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,MAAM,IAAI,CAAC,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,IA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","sources":["common/constants.js","../node_modules/classnames/index.js","../node_modules/country-codes-list/countriesData.js","../node_modules/country-codes-list/index.js","../node_modules/country-codes-list/utils/groupBy.js","../node_modules/country-codes-list/utils/supplant.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/invariant/browser.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-gtm-module/dist/Snippets.js","../node_modules/react-gtm-module/dist/TagManager.js","../node_modules/react-gtm-module/dist/index.js","../node_modules/react-gtm-module/dist/utils/warn.js","../node_modules/react-password-strength-bar/dist/index.js","../node_modules/react-signature-canvas/build/index.js","../node_modules/react-sweet-progress/lib/index.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","../node_modules/trim-canvas/build/index.js","../node_modules/warning/warning.js","../node_modules/signature_pad/dist/signature_pad.mjs","../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/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","common/axiosInstance.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/es/isEqual.js","../node_modules/rc-slider/es/context.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/rc-util/es/KeyCode.js","../node_modules/rc-slider/es/util.js","../node_modules/rc-slider/es/Handles/Handle.js","../node_modules/rc-slider/es/Handles/index.js","../node_modules/rc-slider/es/hooks/useDrag.js","../node_modules/rc-slider/es/Marks/Mark.js","../node_modules/rc-slider/es/Marks/index.js","../node_modules/rc-slider/es/Steps/Dot.js","../node_modules/rc-slider/es/Steps/index.js","../node_modules/rc-slider/es/Tracks/Track.js","../node_modules/rc-slider/es/Tracks/index.js","../node_modules/rc-slider/es/Slider.js","../node_modules/rc-slider/es/hooks/useOffset.js","../node_modules/@remix-run/router/history.ts","../node_modules/rc-slider/es/index.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@remix-run/router/utils.ts","../node_modules/@babel/runtime/helpers/esm/toArray.js","../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/clsx/dist/clsx.m.js","components/layout/auth-layout.js","../node_modules/react-bootstrap-icons/dist/icons/person.js","../node_modules/react-bootstrap-icons/dist/icons/key-fill.js","../node_modules/react-bootstrap-icons/dist/icons/eye-slash.js","../node_modules/react-bootstrap-icons/dist/icons/eye.js","../node_modules/react-bootstrap-icons/dist/icons/rocket-takeoff.js","pages/auth/login.js","App.js","../node_modules/react-select/dist/useStateManager-7e1e8489.esm.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.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/@emotion/utils/dist/emotion-utils.browser.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.browser.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-c39617d8.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/utils/dom/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/react-select/dist/react-select.esm.js","pages/auth/signup.js","../node_modules/react-bootstrap-icons/dist/icons/arrow-right-short.js","pages/auth/forgetPass.js","../node_modules/jwt-decode/lib/atob.js","../node_modules/jwt-decode/lib/index.js","../node_modules/jwt-decode/lib/base64_url_decode.js","common/utils.js","pages/auth/changePass.js","../node_modules/react-bootstrap-icons/dist/icons/person-gear.js","../node_modules/react-bootstrap-icons/dist/icons/credit-card-2-front-fill.js","../node_modules/react-bootstrap-icons/dist/icons/person-fill-add.js","../node_modules/react-bootstrap-icons/dist/icons/box-arrow-left.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/@restart/ui/node_modules/uncontrollable/lib/esm/index.js","../node_modules/@restart/hooks/esm/usePrevious.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/@restart/ui/esm/DropdownContext.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/dequal/dist/index.mjs","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@restart/hooks/esm/useSafeState.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@restart/ui/esm/popper.js","../node_modules/@restart/ui/esm/usePopper.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/@restart/ui/esm/useClickOutside.js","../node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","../node_modules/@restart/ui/esm/DropdownMenu.js","../packages/@react-aria/ssr/src/SSRProvider.tsx","../node_modules/@restart/ui/esm/DropdownToggle.js","../node_modules/@restart/ui/esm/SelectableContext.js","../node_modules/@restart/ui/esm/NavContext.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/@restart/ui/esm/DataKey.js","../node_modules/@restart/ui/esm/DropdownItem.js","../node_modules/@restart/ui/esm/useWindow.js","../node_modules/@restart/ui/esm/Dropdown.js","../node_modules/@restart/hooks/esm/useForceUpdate.js","../node_modules/@restart/hooks/esm/useEventListener.js","../node_modules/uncontrollable/lib/esm/utils.js","../node_modules/uncontrollable/lib/esm/hook.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-bootstrap/esm/DropdownContext.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/DropdownDivider.js","../node_modules/react-bootstrap/esm/DropdownHeader.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/hooks/esm/useResizeObserver.js","../node_modules/@restart/ui/esm/Anchor.js","../node_modules/react-bootstrap/esm/DropdownItem.js","../node_modules/react-bootstrap/esm/DropdownItemText.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/react-bootstrap/esm/InputGroupContext.js","../node_modules/react-bootstrap/esm/NavbarContext.js","../node_modules/react-bootstrap/esm/useWrappedRefWithWarning.js","../node_modules/react-bootstrap/esm/DropdownMenu.js","../node_modules/react-bootstrap/esm/Button.js","../node_modules/react-bootstrap/esm/DropdownToggle.js","../node_modules/react-bootstrap/esm/Dropdown.js","components/layout/dashoboard-layout.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/hooks/esm/useUpdatedRef.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/dom-helpers/esm/activeElement.js","../node_modules/@restart/ui/esm/ModalManager.js","../node_modules/@restart/ui/esm/getScrollbarWidth.js","../node_modules/@restart/ui/esm/useWaitForDOMRef.js","../node_modules/@restart/ui/esm/NoopTransition.js","../node_modules/@restart/ui/esm/ImperativeTransition.js","../node_modules/@restart/ui/esm/Modal.js","../node_modules/@restart/ui/esm/utils.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-bootstrap/esm/BootstrapModalManager.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/react-bootstrap/esm/ModalBody.js","../node_modules/react-bootstrap/esm/ModalContext.js","../node_modules/react-bootstrap/esm/ModalDialog.js","../node_modules/react-bootstrap/esm/ModalFooter.js","../node_modules/react-bootstrap/esm/CloseButton.js","../node_modules/react-bootstrap/esm/AbstractModalHeader.js","../node_modules/react-bootstrap/esm/ModalHeader.js","../node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/react-bootstrap/esm/ModalTitle.js","../node_modules/react-bootstrap/esm/Modal.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/_lib/defaultLocale/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/react-bootstrap-icons/dist/icons/calendar2-check.js","../node_modules/react-bootstrap-icons/dist/icons/check2-all.js","pages/dashboard/home.js","../node_modules/src/index.tsx","common/otpTimer.js","pages/auth/otp.js","pages/auth/forgotOTP.js","pages/auth/terms&conditions.js","pages/auth/mail-confirm.js","pages/auth/package-select.js","pages/auth/verify-link.js","../node_modules/react-bootstrap-icons/dist/icons/trash3.js","pages/dashboard/settings.js","pages/dashboard/package-upgrade.js","pages/auth/payment-success.js","pages/auth/payment-failed.js","../node_modules/react-bootstrap-icons/dist/icons/cloud-arrow-up-fill.js","../node_modules/react-bootstrap-icons/dist/icons/arrow-clockwise.js","../node_modules/react-bootstrap-icons/dist/icons/eye-fill.js","pages/dashboard/promote.js","../node_modules/react-bootstrap-icons/dist/icons/meta.js","../node_modules/react-bootstrap-icons/dist/icons/twitter.js","../node_modules/react-bootstrap-icons/dist/icons/whatsapp.js","../node_modules/react-bootstrap-icons/dist/icons/messenger.js","../node_modules/react-share/es/utils/assert.js","../node_modules/react-share/es/utils/objectToGetParams.js","../node_modules/react-share/es/ShareButton.js","../node_modules/react-share/es/hocs/createShareButton.js","../node_modules/react-share/es/FacebookShareButton.js","../node_modules/react-share/es/TwitterShareButton.js","../node_modules/react-share/es/WhatsappShareButton.js","../node_modules/react-share/es/FacebookMessengerShareButton.js","pages/dashboard/referral.js","pages/dashboard/referred-user.js","pages/dashboard/update-password.js","../node_modules/react-bootstrap-icons/dist/icons/x-square.js","../node_modules/react-bootstrap-icons/dist/icons/check2-square.js","pages/dashboard/admin-promote.js","pages/dashboard/add-reserved-user.js","pages/dashboard/blocked-user.js","index.js"],"sourcesContent":["const _enviroment = \"development\";\n\nconst _security = {\n apiKey: \"HPsooe3Zoi1UGq9VWfBonah2SDsBxkxV3kClDvs3\",\n apiBaseUrl: \"https://ouhpczzj9i.execute-api.us-east-1.amazonaws.com\",\n apiSuffix: \"prod\",\n baseURL: \"https://live.opic3d.com\",\n googleCaptchaSiteKey: '6LeezmgjAAAAAHEncIGgf9kIsBbC2yY9QiqzVg84'\n};\n\nconst _userTypes = {\n user: 1,\n advertiser: 2,\n admin: 3\n};\n\nconst _userStatus = {\n active: 1,\n inActive: 2,\n deleted: 3\n};\n\nconst _paymentStatus = {\n newUser: 1,\n freeUser: 2,\n premiumUser: 3\n};\n\nconst _limits = {\n otpExpiryMinutes: 2,\n contentUploadVideos: 5,\n contentUploadAudios: 3,\n contentUploadImages: 3,\n fileSize: 50, // IN MB\n imageSize: 5, // IN MB\n // videoSize: 50, // IN MB\n videoSize: 500, // IN MB\n audioSize: 5, // IN MB\n rememberMe: 2, // IN DAYS\n totalRefferals: 10,\n s3BucketLinkExpiry: 8, // IN HOURS\n s3BucketPromotionLinkExpiry: 90, // IN DAYS\n miles: 10,\n allowedConsumer: 5,\n playAdvMins: 3,\n advDefaultAllocatedBudget: 100\n};\n\nconst _claimTypes = {\n firstTimeLogin: 1,\n dailyLogin: 2,\n referral: 3\n};\n\nconst _milesClaim = {\n firstTimeLogin: 50,\n // dailyLogin: 10,\n dailyLogin: 200,\n referral: 200\n};\n\nconst _stripeProducts = {\n // DEV PRODUCTS\n // user : 'prod_OolGAbpZjGQY3m',\n // advertiser : 'prod_OpYea1sl6rWPPs'\n // PRODUCTION PRODUCTS\n user: 'prod_P66jwncPXvap3l',\n advertiser: 'prod_P66iHvV5FtXfzm'\n};\n\nconst _minTimeToStartRoom = 3; // it will send me a notification after this time\n\nmodule.exports = { _enviroment, _security, _userTypes, _userStatus, _paymentStatus, _limits, _claimTypes, _milesClaim, _stripeProducts, _minTimeToStartRoom }","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","module.exports = [\n {\n \"countryNameEn\": \"Andorra\",\n \"countryNameLocal\": \"Andorra\",\n \"countryCode\": \"AD\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ca\",\n \"officialLanguageNameEn\": \"Catalan, Valencian\",\n \"officialLanguageNameLocal\": \"Català, Valencià\",\n \"countryCallingCode\": \"376\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇦🇩\"\n },\n {\n \"countryNameEn\": \"Afghanistan\",\n \"countryNameLocal\": \"د افغانستان اسلامي دولتدولت اسلامی افغانستان, جمهوری اسلامی افغانستان\",\n \"countryCode\": \"AF\",\n \"currencyCode\": \"AFN\",\n \"currencyNameEn\": \"Afghan afghani\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fa\",\n \"officialLanguageNameEn\": \"Persian\",\n \"officialLanguageNameLocal\": \"فارسی\",\n \"countryCallingCode\": \"93\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇦🇫\"\n },\n {\n \"countryNameEn\": \"Antigua and Barbuda\",\n \"countryNameLocal\": \"Antigua and Barbuda\",\n \"countryCode\": \"AG\",\n \"currencyCode\": \"XCD\",\n \"currencyNameEn\": \"East Caribbean dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1268\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇦🇬\"\n },\n {\n \"countryNameEn\": \"Anguilla\",\n \"countryNameLocal\": \"Anguilla\",\n \"countryCode\": \"AI\",\n \"currencyCode\": \"XCD\",\n \"currencyNameEn\": \"East Caribbean dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1264\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇦🇮\"\n },\n {\n \"countryNameEn\": \"Albania\",\n \"countryNameLocal\": \"Shqipëria\",\n \"countryCode\": \"AL\",\n \"currencyCode\": \"ALL\",\n \"currencyNameEn\": \"Albanian lek\",\n \"tinType\": \"NIPT\",\n \"tinName\": \"Numri i Identifikimit për Personin e Tatueshëm\",\n \"officialLanguageCode\": \"sq\",\n \"officialLanguageNameEn\": \"Albanian\",\n \"officialLanguageNameLocal\": \"Shqip\",\n \"countryCallingCode\": \"355\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇦🇱\"\n },\n {\n \"countryNameEn\": \"Armenia\",\n \"countryNameLocal\": \"Հայաստան\",\n \"countryCode\": \"AM\",\n \"currencyCode\": \"AMD\",\n \"currencyNameEn\": \"Armenian dram\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"hy\",\n \"officialLanguageNameEn\": \"Armenian\",\n \"officialLanguageNameLocal\": \"Հայերեն\",\n \"countryCallingCode\": \"374\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇦🇲\"\n },\n {\n \"countryNameEn\": \"Angola\",\n \"countryNameLocal\": \"Angola\",\n \"countryCode\": \"AO\",\n \"currencyCode\": \"AOA\",\n \"currencyNameEn\": \"Angolan kwanza\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"pt\",\n \"officialLanguageNameEn\": \"Portuguese\",\n \"officialLanguageNameLocal\": \"Português\",\n \"countryCallingCode\": \"244\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇦🇴\"\n },\n {\n \"countryNameEn\": \"Antarctica\",\n \"countryNameLocal\": \"Antarctica, Antártico, Antarctique, Антарктике\",\n \"countryCode\": \"AQ\",\n \"currencyCode\": \"\",\n \"currencyNameEn\": \"\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"672\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇦🇶\"\n },\n {\n \"countryNameEn\": \"Argentina\",\n \"countryNameLocal\": \"Argentina\",\n \"countryCode\": \"AR\",\n \"currencyCode\": \"ARS\",\n \"currencyNameEn\": \"Argentine peso\",\n \"tinType\": \"CUIT\",\n \"tinName\": \"Código Único de Identificación Tributaria\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"54\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇦🇷\"\n },\n {\n \"countryNameEn\": \"American Samoa\",\n \"countryNameLocal\": \"American Samoa\",\n \"countryCode\": \"AS\",\n \"currencyCode\": \"USD\",\n \"currencyNameEn\": \"United States dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1684\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇦🇸\"\n },\n {\n \"countryNameEn\": \"Austria\",\n \"countryNameLocal\": \"Österreich\",\n \"countryCode\": \"AT\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"UID\",\n \"tinName\": \"Umsatzsteuer-Identifikationsnummer\",\n \"officialLanguageCode\": \"de\",\n \"officialLanguageNameEn\": \"German\",\n \"officialLanguageNameLocal\": \"Deutsch\",\n \"countryCallingCode\": \"43\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇦🇹\"\n },\n {\n \"countryNameEn\": \"Australia\",\n \"countryNameLocal\": \"Australia\",\n \"countryCode\": \"AU\",\n \"currencyCode\": \"AUD\",\n \"currencyNameEn\": \"Australian dollar\",\n \"tinType\": \"ABN\",\n \"tinName\": \"Australian Business Number\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"61\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇦🇺\"\n },\n {\n \"countryNameEn\": \"Aruba\",\n \"countryNameLocal\": \"Aruba\",\n \"countryCode\": \"AW\",\n \"currencyCode\": \"AWG\",\n \"currencyNameEn\": \"Aruban florin\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"nl\",\n \"officialLanguageNameEn\": \"Dutch, Flemish\",\n \"officialLanguageNameLocal\": \"Nederlands, Vlaams\",\n \"countryCallingCode\": \"297\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇦🇼\"\n },\n {\n \"countryNameEn\": \"Åland Islands\",\n \"countryNameLocal\": \"Åland\",\n \"countryCode\": \"AX\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"sv\",\n \"officialLanguageNameEn\": \"Swedish\",\n \"officialLanguageNameLocal\": \"Svenska\",\n \"countryCallingCode\": \"358\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇦🇽\"\n },\n {\n \"countryNameEn\": \"Azerbaijan\",\n \"countryNameLocal\": \"Azərbaycan\",\n \"countryCode\": \"AZ\",\n \"currencyCode\": \"AZN\",\n \"currencyNameEn\": \"Azerbaijani manat\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"az\",\n \"officialLanguageNameEn\": \"Azerbaijani\",\n \"officialLanguageNameLocal\": \"azərbaycan dili\",\n \"countryCallingCode\": \"994\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇦🇿\"\n },\n {\n \"countryNameEn\": \"Bosnia and Herzegovina\",\n \"countryNameLocal\": \"Bosna i Hercegovina\",\n \"countryCode\": \"BA\",\n \"currencyCode\": \"BAM\",\n \"currencyNameEn\": \"Bosnia and Herzegovina convertible mark\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"bs\",\n \"officialLanguageNameEn\": \"Bosnian\",\n \"officialLanguageNameLocal\": \"bosanski jezik\",\n \"countryCallingCode\": \"387\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇧🇦\"\n },\n {\n \"countryNameEn\": \"Barbados\",\n \"countryNameLocal\": \"Barbados\",\n \"countryCode\": \"BB\",\n \"currencyCode\": \"BBD\",\n \"currencyNameEn\": \"Barbados dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1246\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇧🇧\"\n },\n {\n \"countryNameEn\": \"Bangladesh\",\n \"countryNameLocal\": \"গণপ্রজাতন্ত্রী বাংলাদেশ\",\n \"countryCode\": \"BD\",\n \"currencyCode\": \"BDT\",\n \"currencyNameEn\": \"Bangladeshi taka\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"bn\",\n \"officialLanguageNameEn\": \"Bengali\",\n \"officialLanguageNameLocal\": \"বাংলা\",\n \"countryCallingCode\": \"880\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇧🇩\"\n },\n {\n \"countryNameEn\": \"Belgium\",\n \"countryNameLocal\": \"België, Belgique, Belgien\",\n \"countryCode\": \"BE\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"n° TVABTW-nr Mwst-nr\",\n \"tinName\": \"BTW identificatienummer / Numéro de TVA\",\n \"officialLanguageCode\": \"nl\",\n \"officialLanguageNameEn\": \"Dutch, Flemish\",\n \"officialLanguageNameLocal\": \"Nederlands, Vlaams\",\n \"countryCallingCode\": \"32\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇧🇪\"\n },\n {\n \"countryNameEn\": \"Burkina Faso\",\n \"countryNameLocal\": \"Burkina Faso\",\n \"countryCode\": \"BF\",\n \"currencyCode\": \"XOF\",\n \"currencyNameEn\": \"CFA franc BCEAO\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"226\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇧🇫\"\n },\n {\n \"countryNameEn\": \"Bulgaria\",\n \"countryNameLocal\": \"България\",\n \"countryCode\": \"BG\",\n \"currencyCode\": \"BGN\",\n \"currencyNameEn\": \"Bulgarian lev\",\n \"tinType\": \"ДДС номер\",\n \"tinName\": \"Идентификационен номер по ДДС\",\n \"officialLanguageCode\": \"bg\",\n \"officialLanguageNameEn\": \"Bulgarian\",\n \"officialLanguageNameLocal\": \"български език\",\n \"countryCallingCode\": \"359\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇧🇬\"\n },\n {\n \"countryNameEn\": \"Bahrain\",\n \"countryNameLocal\": \"البحرين\",\n \"countryCode\": \"BH\",\n \"currencyCode\": \"BHD\",\n \"currencyNameEn\": \"Bahraini dinar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"973\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇧🇭\"\n },\n {\n \"countryNameEn\": \"Burundi\",\n \"countryNameLocal\": \"Burundi\",\n \"countryCode\": \"BI\",\n \"currencyCode\": \"BIF\",\n \"currencyNameEn\": \"Burundian franc\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"257\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇧🇮\"\n },\n {\n \"countryNameEn\": \"Benin\",\n \"countryNameLocal\": \"Bénin\",\n \"countryCode\": \"BJ\",\n \"currencyCode\": \"XOF\",\n \"currencyNameEn\": \"CFA franc BCEAO\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"229\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇧🇯\"\n },\n {\n \"countryNameEn\": \"Saint Barthélemy\",\n \"countryNameLocal\": \"Saint-Barthélemy\",\n \"countryCode\": \"BL\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"590\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇧🇱\"\n },\n {\n \"countryNameEn\": \"Bermuda\",\n \"countryNameLocal\": \"Bermuda\",\n \"countryCode\": \"BM\",\n \"currencyCode\": \"BMD\",\n \"currencyNameEn\": \"Bermudian dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1441\",\n \"areaCodes\": [],\n \"region\": \"North America\",\n \"flag\": \"🇧🇲\"\n },\n {\n \"countryNameEn\": \"Brunei Darussalam\",\n \"countryNameLocal\": \"Brunei Darussalam\",\n \"countryCode\": \"BN\",\n \"currencyCode\": \"BND\",\n \"currencyNameEn\": \"Brunei dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ms\",\n \"officialLanguageNameEn\": \"Malay\",\n \"officialLanguageNameLocal\": \"Bahasa Melayu, بهاس ملايو‎\",\n \"countryCallingCode\": \"673\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇧🇳\"\n },\n {\n \"countryNameEn\": \"Bolivia (Plurinational State of)\",\n \"countryNameLocal\": \"Bolivia, Bulibiya, Volívia, Wuliwya\",\n \"countryCode\": \"BO\",\n \"currencyCode\": \"BOP\",\n \"currencyNameEn\": \"\",\n \"tinType\": \"NIT\",\n \"tinName\": \"Número de Identificación Tributaria\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"591\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇧🇴\"\n },\n {\n \"countryNameEn\": \"Bonaire, Sint Eustatius and Saba\",\n \"countryNameLocal\": \"Caribisch Nederland\",\n \"countryCode\": \"BQ\",\n \"currencyCode\": \"USD\",\n \"currencyNameEn\": \"United States dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"nl\",\n \"officialLanguageNameEn\": \"Dutch, Flemish\",\n \"officialLanguageNameLocal\": \"Nederlands, Vlaams\",\n \"countryCallingCode\": \"5997\",\n \"areaCodes\": [],\n \"region\": \"Unknown\",\n \"flag\": \"🇧🇶\"\n },\n {\n \"countryNameEn\": \"Brazil\",\n \"countryNameLocal\": \"Brasil\",\n \"countryCode\": \"BR\",\n \"currencyCode\": \"BRL\",\n \"currencyNameEn\": \"Brazilian real\",\n \"tinType\": \"CNPJ\",\n \"tinName\": \"Cadastro Nacional de Pessoa Jurídica\",\n \"officialLanguageCode\": \"pt\",\n \"officialLanguageNameEn\": \"Portuguese\",\n \"officialLanguageNameLocal\": \"Português\",\n \"countryCallingCode\": \"55\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇧🇷\"\n },\n {\n \"countryNameEn\": \"Bhutan\",\n \"countryNameLocal\": \"འབྲུག་ཡུལ\",\n \"countryCode\": \"BT\",\n \"currencyCode\": \"BTN\",\n \"currencyNameEn\": \"Bhutanese ngultrum\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"dz\",\n \"officialLanguageNameEn\": \"Dzongkha\",\n \"officialLanguageNameLocal\": \"རྫོང་ཁ\",\n \"countryCallingCode\": \"975\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇧🇹\"\n },\n {\n \"countryNameEn\": \"Bouvet Island\",\n \"countryNameLocal\": \"Bouvetøya\",\n \"countryCode\": \"BV\",\n \"currencyCode\": \"NOK\",\n \"currencyNameEn\": \"Norwegian krone\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"no\",\n \"officialLanguageNameEn\": \"Norwegian\",\n \"officialLanguageNameLocal\": \"Norsk\",\n \"countryCallingCode\": \"47\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇧🇻\"\n },\n {\n \"countryNameEn\": \"Botswana\",\n \"countryNameLocal\": \"Botswana\",\n \"countryCode\": \"BW\",\n \"currencyCode\": \"BWP\",\n \"currencyNameEn\": \"Botswana pula\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"267\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇧🇼\"\n },\n {\n \"countryNameEn\": \"Belarus\",\n \"countryNameLocal\": \"Беларусь\",\n \"countryCode\": \"BY\",\n \"currencyCode\": \"BYR\",\n \"currencyNameEn\": \"\",\n \"tinType\": \"УНП (UNP)\",\n \"tinName\": \"Учетный номер плательщика\",\n \"officialLanguageCode\": \"be\",\n \"officialLanguageNameEn\": \"Belarusian\",\n \"officialLanguageNameLocal\": \"беларуская мова\",\n \"countryCallingCode\": \"375\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇧🇾\"\n },\n {\n \"countryNameEn\": \"Belize\",\n \"countryNameLocal\": \"Belize\",\n \"countryCode\": \"BZ\",\n \"currencyCode\": \"BZD\",\n \"currencyNameEn\": \"Belize dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"501\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇧🇿\"\n },\n {\n \"countryNameEn\": \"Canada\",\n \"countryNameLocal\": \"Canada\",\n \"countryCode\": \"CA\",\n \"currencyCode\": \"CAD\",\n \"currencyNameEn\": \"Canadian dollar\",\n \"tinType\": \"BN / NE\",\n \"tinName\": \"Business Number\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1\",\n \"areaCodes\": [\"403\", \"587\", \"780\", \"825\", \"236\", \"250\", \"604\", \"672\", \"778\", \"204\", \"431\", \"506\", \"709\", \"782\", \"902\", \"226\", \"249\", \"289\", \"343\", \"365\", \"416\", \"437\", \"519\", \"548\", \"613\", \"647\", \"705\", \"807\", \"905\", \"367\", \"418\", \"438\", \"450\", \"514\", \"579\", \"581\", \"819\", \"873\", \"306\", \"639\", \"867\"],\n \"region\": \"North America\",\n \"flag\": \"🇨🇦\"\n },\n {\n \"countryNameEn\": \"Switzerland\",\n \"countryNameLocal\": \"Schweiz, Suisse, Svizzera, Svizra\",\n \"countryCode\": \"CH\",\n \"currencyCode\": \"CHE\",\n \"currencyNameEn\": \"WIR Euro (complementary currency)\",\n \"tinType\": \"MWST/TVA/IVA\",\n \"tinName\": \"Mehrwertsteuernummer\",\n \"officialLanguageCode\": \"de\",\n \"officialLanguageNameEn\": \"German\",\n \"officialLanguageNameLocal\": \"Deutsch\",\n \"countryCallingCode\": \"41\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇨🇭\"\n },\n {\n \"countryNameEn\": \"Côte d'Ivoire\",\n \"countryNameLocal\": \"Côte d'Ivoire\",\n \"countryCode\": \"CI\",\n \"currencyCode\": \"XOF\",\n \"currencyNameEn\": \"CFA franc BCEAO\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"225\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇨🇮\"\n },\n {\n \"countryNameEn\": \"Chile\",\n \"countryNameLocal\": \"Chile\",\n \"countryCode\": \"CL\",\n \"currencyCode\": \"CLP\",\n \"currencyNameEn\": \"Chilean peso\",\n \"tinType\": \"RUT\",\n \"tinName\": \"Rol Único Tributario\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"56\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇨🇱\"\n },\n {\n \"countryNameEn\": \"Cameroon\",\n \"countryNameLocal\": \"Cameroun, Cameroon\",\n \"countryCode\": \"CM\",\n \"currencyCode\": \"XAF\",\n \"currencyNameEn\": \"CFA franc BEAC\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"237\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇨🇲\"\n },\n {\n \"countryNameEn\": \"China\",\n \"countryNameLocal\": \"中国\",\n \"countryCode\": \"CN\",\n \"currencyCode\": \"CNY\",\n \"currencyNameEn\": \"Renminbi (Chinese) yuan\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"zh-hans\",\n \"officialLanguageNameEn\": \"\",\n \"officialLanguageNameLocal\": \"\",\n \"countryCallingCode\": \"86\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇨🇳\"\n },\n {\n \"countryNameEn\": \"Colombia\",\n \"countryNameLocal\": \"Colombia\",\n \"countryCode\": \"CO\",\n \"currencyCode\": \"COP\",\n \"currencyNameEn\": \"Colombian peso\",\n \"tinType\": \"NIT\",\n \"tinName\": \"Número De Identificación Tributaria\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"57\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇨🇴\"\n },\n {\n \"countryNameEn\": \"Costa Rica\",\n \"countryNameLocal\": \"Costa Rica\",\n \"countryCode\": \"CR\",\n \"currencyCode\": \"CRC\",\n \"currencyNameEn\": \"Costa Rican colon\",\n \"tinType\": \"\",\n \"tinName\": \"Cédula Jurídica\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"506\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇨🇷\"\n },\n {\n \"countryNameEn\": \"Cuba\",\n \"countryNameLocal\": \"Cuba\",\n \"countryCode\": \"CU\",\n \"currencyCode\": \"CUC\",\n \"currencyNameEn\": \"Cuban convertible peso\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"53\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇨🇺\"\n },\n {\n \"countryNameEn\": \"Cabo Verde\",\n \"countryNameLocal\": \"Cabo Verde\",\n \"countryCode\": \"CV\",\n \"currencyCode\": \"CVE\",\n \"currencyNameEn\": \"Cape Verdean escudo\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"pt\",\n \"officialLanguageNameEn\": \"Portuguese\",\n \"officialLanguageNameLocal\": \"Português\",\n \"countryCallingCode\": \"238\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇨🇻\"\n },\n {\n \"countryNameEn\": \"Curaçao\",\n \"countryNameLocal\": \"Curaçao\",\n \"countryCode\": \"CW\",\n \"currencyCode\": \"ANG\",\n \"currencyNameEn\": \"Netherlands Antillean guilder\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"nl\",\n \"officialLanguageNameEn\": \"Dutch, Flemish\",\n \"officialLanguageNameLocal\": \"Nederlands, Vlaams\",\n \"countryCallingCode\": \"599\",\n \"areaCodes\": [],\n \"region\": \"Unknown\",\n \"flag\": \"🇨🇼\"\n },\n {\n \"countryNameEn\": \"Christmas Island\",\n \"countryNameLocal\": \"Christmas Island\",\n \"countryCode\": \"CX\",\n \"currencyCode\": \"AUD\",\n \"currencyNameEn\": \"Australian dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"61\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇨🇽\"\n },\n {\n \"countryNameEn\": \"Cyprus\",\n \"countryNameLocal\": \"Κύπρος, Kibris\",\n \"countryCode\": \"CY\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"ΦΠΑ\",\n \"tinName\": \"Αριθμός Εγγραφής Φ.Π.Α.\",\n \"officialLanguageCode\": \"el\",\n \"officialLanguageNameEn\": \"Greek, Modern (1453-)\",\n \"officialLanguageNameLocal\": \"ελληνικά\",\n \"countryCallingCode\": \"357\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇨🇾\"\n },\n {\n \"countryNameEn\": \"Germany\",\n \"countryNameLocal\": \"Deutschland\",\n \"countryCode\": \"DE\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"USt-IdNr.\",\n \"tinName\": \"Umsatzsteuer-Identifikationsnummer\",\n \"officialLanguageCode\": \"de\",\n \"officialLanguageNameEn\": \"German\",\n \"officialLanguageNameLocal\": \"Deutsch\",\n \"countryCallingCode\": \"49\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇩🇪\"\n },\n {\n \"countryNameEn\": \"Djibouti\",\n \"countryNameLocal\": \"Djibouti, جيبوتي, Jabuuti, Gabuutih\",\n \"countryCode\": \"DJ\",\n \"currencyCode\": \"DJF\",\n \"currencyNameEn\": \"Djiboutian franc\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"253\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇩🇯\"\n },\n {\n \"countryNameEn\": \"Denmark\",\n \"countryNameLocal\": \"Danmark\",\n \"countryCode\": \"DK\",\n \"currencyCode\": \"DKK\",\n \"currencyNameEn\": \"Danish krone\",\n \"tinType\": \"CVR\",\n \"tinName\": \"Momsregistreringsnummer\",\n \"officialLanguageCode\": \"da\",\n \"officialLanguageNameEn\": \"Danish\",\n \"officialLanguageNameLocal\": \"dansk\",\n \"countryCallingCode\": \"45\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇩🇰\"\n },\n {\n \"countryNameEn\": \"Dominica\",\n \"countryNameLocal\": \"Dominica\",\n \"countryCode\": \"DM\",\n \"currencyCode\": \"XCD\",\n \"currencyNameEn\": \"East Caribbean dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"767\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇩🇲\"\n },\n {\n \"countryNameEn\": \"Algeria\",\n \"countryNameLocal\": \"الجزائر\",\n \"countryCode\": \"DZ\",\n \"currencyCode\": \"DZD\",\n \"currencyNameEn\": \"Algerian dinar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"213\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇩🇿\"\n },\n {\n \"countryNameEn\": \"Ecuador\",\n \"countryNameLocal\": \"Ecuador\",\n \"countryCode\": \"EC\",\n \"currencyCode\": \"USD\",\n \"currencyNameEn\": \"United States dollar\",\n \"tinType\": \"RUC\",\n \"tinName\": \"Número de Registro Unico de Contribuyentes\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"593\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇪🇨\"\n },\n {\n \"countryNameEn\": \"Estonia\",\n \"countryNameLocal\": \"Eesti\",\n \"countryCode\": \"EE\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"KMKR\",\n \"tinName\": \"Käibemaksukohustuslase number\",\n \"officialLanguageCode\": \"et\",\n \"officialLanguageNameEn\": \"Estonian\",\n \"officialLanguageNameLocal\": \"eesti, eesti keel\",\n \"countryCallingCode\": \"372\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇪🇪\"\n },\n {\n \"countryNameEn\": \"Egypt\",\n \"countryNameLocal\": \"مصر\",\n \"countryCode\": \"EG\",\n \"currencyCode\": \"EGP\",\n \"currencyNameEn\": \"Egyptian pound\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"20\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇪🇬\"\n },\n {\n \"countryNameEn\": \"Western Sahara\",\n \"countryNameLocal\": \"Sahara Occidental\",\n \"countryCode\": \"EH\",\n \"currencyCode\": \"MAD\",\n \"currencyNameEn\": \"Moroccan dirham\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"212\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇪🇭\"\n },\n {\n \"countryNameEn\": \"Eritrea\",\n \"countryNameLocal\": \"ኤርትራ, إرتريا, Eritrea\",\n \"countryCode\": \"ER\",\n \"currencyCode\": \"ERN\",\n \"currencyNameEn\": \"Eritrean nakfa\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ti\",\n \"officialLanguageNameEn\": \"Tigrinya\",\n \"officialLanguageNameLocal\": \"ትግርኛ\",\n \"countryCallingCode\": \"291\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇪🇷\"\n },\n {\n \"countryNameEn\": \"Spain\",\n \"countryNameLocal\": \"España\",\n \"countryCode\": \"ES\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"NIF (CIF)\",\n \"tinName\": \"Número de Identificación Fiscal (formerly named Código de Identificación Fiscal)\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"34\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇪🇸\"\n },\n {\n \"countryNameEn\": \"Ethiopia\",\n \"countryNameLocal\": \"ኢትዮጵያ, Itoophiyaa\",\n \"countryCode\": \"ET\",\n \"currencyCode\": \"ETB\",\n \"currencyNameEn\": \"Ethiopian birr\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"am\",\n \"officialLanguageNameEn\": \"Amharic\",\n \"officialLanguageNameLocal\": \"አማርኛ\",\n \"countryCallingCode\": \"251\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇪🇹\"\n },\n {\n \"countryNameEn\": \"Finland\",\n \"countryNameLocal\": \"Suomi\",\n \"countryCode\": \"FI\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"ALV nro\",\n \"tinName\": \"Arvonlisäveronumero\",\n \"officialLanguageCode\": \"fi\",\n \"officialLanguageNameEn\": \"Finnish\",\n \"officialLanguageNameLocal\": \"suomi, suomen kieli\",\n \"countryCallingCode\": \"358\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇫🇮\"\n },\n {\n \"countryNameEn\": \"Fiji\",\n \"countryNameLocal\": \"Fiji\",\n \"countryCode\": \"FJ\",\n \"currencyCode\": \"FJD\",\n \"currencyNameEn\": \"Fiji dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"679\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇫🇯\"\n },\n {\n \"countryNameEn\": \"Micronesia (Federated States of)\",\n \"countryNameLocal\": \"Micronesia\",\n \"countryCode\": \"FM\",\n \"currencyCode\": \"USD\",\n \"currencyNameEn\": \"United States dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"691\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇫🇲\"\n },\n {\n \"countryNameEn\": \"France\",\n \"countryNameLocal\": \"France\",\n \"countryCode\": \"FR\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"n° TVA\",\n \"tinName\": \"Numéro d'identification à la taxe sur la valeur ajoutée / Numéro de TVA intracommunautaire\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"33\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇫🇷\"\n },\n {\n \"countryNameEn\": \"Gabon\",\n \"countryNameLocal\": \"Gabon\",\n \"countryCode\": \"GA\",\n \"currencyCode\": \"XAF\",\n \"currencyNameEn\": \"CFA franc BEAC\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"241\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇬🇦\"\n },\n {\n \"countryNameEn\": \"Grenada\",\n \"countryNameLocal\": \"Grenada\",\n \"countryCode\": \"GD\",\n \"currencyCode\": \"XCD\",\n \"currencyNameEn\": \"East Caribbean dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1473\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇬🇩\"\n },\n {\n \"countryNameEn\": \"Georgia\",\n \"countryNameLocal\": \"საქართველო\",\n \"countryCode\": \"GE\",\n \"currencyCode\": \"GEL\",\n \"currencyNameEn\": \"Georgian lari\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ka\",\n \"officialLanguageNameEn\": \"Georgian\",\n \"officialLanguageNameLocal\": \"ქართული\",\n \"countryCallingCode\": \"995\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇬🇪\"\n },\n {\n \"countryNameEn\": \"French Guiana\",\n \"countryNameLocal\": \"Guyane française\",\n \"countryCode\": \"GF\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"594\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇬🇫\"\n },\n {\n \"countryNameEn\": \"Guernsey\",\n \"countryNameLocal\": \"Guernsey\",\n \"countryCode\": \"GG\",\n \"currencyCode\": \"GBP\",\n \"currencyNameEn\": \"Pound sterling\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"44\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇬🇬\"\n },\n {\n \"countryNameEn\": \"Ghana\",\n \"countryNameLocal\": \"Ghana\",\n \"countryCode\": \"GH\",\n \"currencyCode\": \"GHS\",\n \"currencyNameEn\": \"Ghanaian cedi\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"233\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇬🇭\"\n },\n {\n \"countryNameEn\": \"Gibraltar\",\n \"countryNameLocal\": \"Gibraltar\",\n \"countryCode\": \"GI\",\n \"currencyCode\": \"GIP\",\n \"currencyNameEn\": \"Gibraltar pound\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"350\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇬🇮\"\n },\n {\n \"countryNameEn\": \"Greenland\",\n \"countryNameLocal\": \"Kalaallit Nunaat, Grønland\",\n \"countryCode\": \"GL\",\n \"currencyCode\": \"DKK\",\n \"currencyNameEn\": \"Danish krone\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"kl\",\n \"officialLanguageNameEn\": \"Kalaallisut, Greenlandic\",\n \"officialLanguageNameLocal\": \"kalaallisut, kalaallit oqaasii\",\n \"countryCallingCode\": \"299\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇬🇱\"\n },\n {\n \"countryNameEn\": \"Guinea\",\n \"countryNameLocal\": \"Guinée\",\n \"countryCode\": \"GN\",\n \"currencyCode\": \"GNF\",\n \"currencyNameEn\": \"Guinean franc\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"224\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇬🇳\"\n },\n {\n \"countryNameEn\": \"Guadeloupe\",\n \"countryNameLocal\": \"Guadeloupe\",\n \"countryCode\": \"GP\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"590\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇬🇵\"\n },\n {\n \"countryNameEn\": \"Equatorial Guinea\",\n \"countryNameLocal\": \"Guiena ecuatorial, Guinée équatoriale, Guiné Equatorial\",\n \"countryCode\": \"GQ\",\n \"currencyCode\": \"XAF\",\n \"currencyNameEn\": \"CFA franc BEAC\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"240\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇬🇶\"\n },\n {\n \"countryNameEn\": \"Greece\",\n \"countryNameLocal\": \"Ελλάδα\",\n \"countryCode\": \"GR\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"el\",\n \"officialLanguageNameEn\": \"Greek, Modern (1453-)\",\n \"officialLanguageNameLocal\": \"ελληνικά\",\n \"countryCallingCode\": \"30\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇬🇷\"\n },\n {\n \"countryNameEn\": \"South Georgia and the South Sandwich Islands\",\n \"countryNameLocal\": \"South Georgia and the South Sandwich Islands\",\n \"countryCode\": \"GS\",\n \"currencyCode\": \"\",\n \"currencyNameEn\": \"\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"500\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇬🇸\"\n },\n {\n \"countryNameEn\": \"Guatemala\",\n \"countryNameLocal\": \"Guatemala\",\n \"countryCode\": \"GT\",\n \"currencyCode\": \"GTQ\",\n \"currencyNameEn\": \"Guatemalan quetzal\",\n \"tinType\": \"NIT\",\n \"tinName\": \"Número de Identificación Tributaria\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"502\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇬🇹\"\n },\n {\n \"countryNameEn\": \"Guam\",\n \"countryNameLocal\": \"Guam, Guåhån\",\n \"countryCode\": \"GU\",\n \"currencyCode\": \"USD\",\n \"currencyNameEn\": \"United States dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇬🇺\"\n },\n {\n \"countryNameEn\": \"Guinea-Bissau\",\n \"countryNameLocal\": \"Guiné-Bissau\",\n \"countryCode\": \"GW\",\n \"currencyCode\": \"XOF\",\n \"currencyNameEn\": \"CFA franc BCEAO\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"pt\",\n \"officialLanguageNameEn\": \"Portuguese\",\n \"officialLanguageNameLocal\": \"Português\",\n \"countryCallingCode\": \"245\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇬🇼\"\n },\n {\n \"countryNameEn\": \"Guyana\",\n \"countryNameLocal\": \"Guyana\",\n \"countryCode\": \"GY\",\n \"currencyCode\": \"GYD\",\n \"currencyNameEn\": \"Guyanese dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"592\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇬🇾\"\n },\n {\n \"countryNameEn\": \"Hong Kong\",\n \"countryNameLocal\": \"香港, Hong Kong\",\n \"countryCode\": \"HK\",\n \"currencyCode\": \"HKD\",\n \"currencyNameEn\": \"Hong Kong dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"zh-hant\",\n \"officialLanguageNameEn\": \"\",\n \"officialLanguageNameLocal\": \"\",\n \"countryCallingCode\": \"852\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇭🇰\"\n },\n {\n \"countryNameEn\": \"Honduras\",\n \"countryNameLocal\": \"Honduras\",\n \"countryCode\": \"HN\",\n \"currencyCode\": \"HNL\",\n \"currencyNameEn\": \"Honduran lempira\",\n \"tinType\": \"RTN\",\n \"tinName\": \"Registro Tributario Nacional\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"504\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇭🇳\"\n },\n {\n \"countryNameEn\": \"Croatia\",\n \"countryNameLocal\": \"Hrvatska\",\n \"countryCode\": \"HR\",\n \"currencyCode\": \"HRK\",\n \"currencyNameEn\": \"Croatian kuna\",\n \"tinType\": \"PDV-ID; OIB\",\n \"tinName\": \"PDV Id. Broj OIB\",\n \"officialLanguageCode\": \"hr\",\n \"officialLanguageNameEn\": \"Croatian\",\n \"officialLanguageNameLocal\": \"hrvatski jezik\",\n \"countryCallingCode\": \"385\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇭🇷\"\n },\n {\n \"countryNameEn\": \"Haiti\",\n \"countryNameLocal\": \"Haïti, Ayiti\",\n \"countryCode\": \"HT\",\n \"currencyCode\": \"HTG\",\n \"currencyNameEn\": \"Haitian gourde\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"509\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇭🇹\"\n },\n {\n \"countryNameEn\": \"Hungary\",\n \"countryNameLocal\": \"Magyarország\",\n \"countryCode\": \"HU\",\n \"currencyCode\": \"HUF\",\n \"currencyNameEn\": \"Hungarian forint\",\n \"tinType\": \"ANUM\",\n \"tinName\": \"Közösségi adószám\",\n \"officialLanguageCode\": \"hu\",\n \"officialLanguageNameEn\": \"Hungarian\",\n \"officialLanguageNameLocal\": \"magyar\",\n \"countryCallingCode\": \"36\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇭🇺\"\n },\n {\n \"countryNameEn\": \"Indonesia\",\n \"countryNameLocal\": \"Indonesia\",\n \"countryCode\": \"ID\",\n \"currencyCode\": \"IDR\",\n \"currencyNameEn\": \"Indonesian rupiah\",\n \"tinType\": \"NPWP\",\n \"tinName\": \"Nomor Pokok Wajib Pajak\",\n \"officialLanguageCode\": \"id\",\n \"officialLanguageNameEn\": \"Indonesian\",\n \"officialLanguageNameLocal\": \"Bahasa Indonesia\",\n \"countryCallingCode\": \"62\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇮🇩\"\n },\n {\n \"countryNameEn\": \"Ireland\",\n \"countryNameLocal\": \"Ireland, Éire\",\n \"countryCode\": \"IE\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"VAT or CBL\",\n \"tinName\": \"Value added tax identification no.\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"353\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇮🇪\"\n },\n {\n \"countryNameEn\": \"Israel\",\n \"countryNameLocal\": \"ישראל\",\n \"countryCode\": \"IL\",\n \"currencyCode\": \"ILS\",\n \"currencyNameEn\": \"Israeli new shekel\",\n \"tinType\": \"\",\n \"tinName\": \"מס' עוסק מורשה / ח\\\"פ\",\n \"officialLanguageCode\": \"he\",\n \"officialLanguageNameEn\": \"Hebrew\",\n \"officialLanguageNameLocal\": \"עברית\",\n \"countryCallingCode\": \"972\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇮🇱\"\n },\n {\n \"countryNameEn\": \"Isle of Man\",\n \"countryNameLocal\": \"Isle of Man\",\n \"countryCode\": \"IM\",\n \"currencyCode\": \"GBP\",\n \"currencyNameEn\": \"Pound sterling\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"44\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇮🇲\"\n },\n {\n \"countryNameEn\": \"India\",\n \"countryNameLocal\": \"भारत, India\",\n \"countryCode\": \"IN\",\n \"currencyCode\": \"INR\",\n \"currencyNameEn\": \"Indian rupee\",\n \"tinType\": \"VAT TIN / CST TIN\",\n \"tinName\": \"Value Added Tax - Taxpayer Identification Number / Central Sales Tax - Taxpayer Identification Number (In most states)Not applicable\",\n \"officialLanguageCode\": \"hi\",\n \"officialLanguageNameEn\": \"Hindi\",\n \"officialLanguageNameLocal\": \"हिन्दी, हिंदी\",\n \"countryCallingCode\": \"91\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇮🇳\"\n },\n {\n \"countryNameEn\": \"British Indian Ocean Territories\",\n \"countryNameLocal\": \"British Indian Ocean Territories\",\n \"countryCode\": \"IO\",\n \"currencyCode\": \"USD\",\n \"currencyNameEn\": \"United States dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"246\",\n \"areaCodes\": [],\n \"region\": \"Indian Ocean\",\n \"flag\": \"🇮🇴\",\n },\n {\n \"countryNameEn\": \"Iraq\",\n \"countryNameLocal\": \"العراق, Iraq\",\n \"countryCode\": \"IQ\",\n \"currencyCode\": \"IQD\",\n \"currencyNameEn\": \"Iraqi dinar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"964\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇮🇶\"\n },\n {\n \"countryNameEn\": \"Iran (Islamic Republic of)\",\n \"countryNameLocal\": \"ایران\",\n \"countryCode\": \"IR\",\n \"currencyCode\": \"IRR\",\n \"currencyNameEn\": \"Iranian rial\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fa\",\n \"officialLanguageNameEn\": \"Persian\",\n \"officialLanguageNameLocal\": \"فارسی\",\n \"countryCallingCode\": \"98\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇮🇷\"\n },\n {\n \"countryNameEn\": \"Iceland\",\n \"countryNameLocal\": \"Ísland\",\n \"countryCode\": \"IS\",\n \"currencyCode\": \"ISK\",\n \"currencyNameEn\": \"Icelandic króna\",\n \"tinType\": \"VSK / VASK\",\n \"tinName\": \"Virðisaukaskattsnúmer\",\n \"officialLanguageCode\": \"is\",\n \"officialLanguageNameEn\": \"Icelandic\",\n \"officialLanguageNameLocal\": \"Íslenska\",\n \"countryCallingCode\": \"354\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇮🇸\"\n },\n {\n \"countryNameEn\": \"Italy\",\n \"countryNameLocal\": \"Italia\",\n \"countryCode\": \"IT\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"P.IVA\",\n \"tinName\": \"Partita IVA(IVA = Imposta sul Valore Aggiunto)\",\n \"officialLanguageCode\": \"it\",\n \"officialLanguageNameEn\": \"Italian\",\n \"officialLanguageNameLocal\": \"Italiano\",\n \"countryCallingCode\": \"39\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇮🇹\"\n },\n {\n \"countryNameEn\": \"Jersey\",\n \"countryNameLocal\": \"Jersey\",\n \"countryCode\": \"JE\",\n \"currencyCode\": \"GBP\",\n \"currencyNameEn\": \"Pound sterling\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"44\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇯🇪\"\n },\n {\n \"countryNameEn\": \"Jamaica\",\n \"countryNameLocal\": \"Jamaica\",\n \"countryCode\": \"JM\",\n \"currencyCode\": \"JMD\",\n \"currencyNameEn\": \"Jamaican dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"876\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇯🇲\"\n },\n {\n \"countryNameEn\": \"Jordan\",\n \"countryNameLocal\": \"الأُرْدُن\",\n \"countryCode\": \"JO\",\n \"currencyCode\": \"JOD\",\n \"currencyNameEn\": \"Jordanian dinar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"962\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇯🇴\"\n },\n {\n \"countryNameEn\": \"Japan\",\n \"countryNameLocal\": \"日本\",\n \"countryCode\": \"JP\",\n \"currencyCode\": \"JPY\",\n \"currencyNameEn\": \"Japanese yen\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ja\",\n \"officialLanguageNameEn\": \"Japanese\",\n \"officialLanguageNameLocal\": \"日本語 (にほんご)\",\n \"countryCallingCode\": \"81\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇯🇵\"\n },\n {\n \"countryNameEn\": \"Kenya\",\n \"countryNameLocal\": \"Kenya\",\n \"countryCode\": \"KE\",\n \"currencyCode\": \"KES\",\n \"currencyNameEn\": \"Kenyan shilling\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"sw\",\n \"officialLanguageNameEn\": \"Swahili\",\n \"officialLanguageNameLocal\": \"Kiswahili\",\n \"countryCallingCode\": \"254\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇰🇪\"\n },\n {\n \"countryNameEn\": \"Kyrgyzstan\",\n \"countryNameLocal\": \"Кыргызстан, Киргизия\",\n \"countryCode\": \"KG\",\n \"currencyCode\": \"KGS\",\n \"currencyNameEn\": \"Kyrgyzstani som\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ky\",\n \"officialLanguageNameEn\": \"Kirghiz, Kyrgyz\",\n \"officialLanguageNameLocal\": \"Кыргызча, Кыргыз тили\",\n \"countryCallingCode\": \"996\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇰🇬\"\n },\n {\n \"countryNameEn\": \"Cambodia\",\n \"countryNameLocal\": \"កម្ពុជា\",\n \"countryCode\": \"KH\",\n \"currencyCode\": \"KHR\",\n \"currencyNameEn\": \"Cambodian riel\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"km\",\n \"officialLanguageNameEn\": \"Central Khmer\",\n \"officialLanguageNameLocal\": \"ខ្មែរ, ខេមរភាសា, ភាសាខ្មែរ\",\n \"countryCallingCode\": \"855\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇰🇭\"\n },\n {\n \"countryNameEn\": \"North Korea\",\n \"countryNameLocal\": \"조선민주주의인민공화국\",\n \"countryCode\": \"KP\",\n \"currencyCode\": \"KPW\",\n \"currencyNameEn\": \"North Korean won\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ko\",\n \"officialLanguageNameEn\": \"Korean\",\n \"officialLanguageNameLocal\": \"조선어\",\n \"countryCallingCode\": \"850\",\n \"areaCodes\": [],\n \"region\": \"Asia\",\n \"flag\": \"🇰🇵\"\n },\n {\n \"countryNameEn\": \"South Korea\",\n \"countryNameLocal\": \"대한민국\",\n \"countryCode\": \"KR\",\n \"currencyCode\": \"KRW\",\n \"currencyNameEn\": \"South Korean won\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ko\",\n \"officialLanguageNameEn\": \"Korean\",\n \"officialLanguageNameLocal\": \"한국어\",\n \"countryCallingCode\": \"82\",\n \"areaCodes\": [],\n \"region\": \"Asia\",\n \"flag\": \"🇰🇷\"\n },\n {\n \"countryNameEn\": \"Kiribati\",\n \"countryNameLocal\": \"Kiribati\",\n \"countryCode\": \"KI\",\n \"currencyCode\": \"AUD\",\n \"currencyNameEn\": \"Australian dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"686\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇰🇮\"\n },\n {\n \"countryNameEn\": \"Saint Kitts and Nevis\",\n \"countryNameLocal\": \"Saint Kitts and Nevis\",\n \"countryCode\": \"KN\",\n \"currencyCode\": \"XCD\",\n \"currencyNameEn\": \"East Caribbean dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1869\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇰🇳\"\n },\n {\n \"countryNameEn\": \"Kuwait\",\n \"countryNameLocal\": \"الكويت\",\n \"countryCode\": \"KW\",\n \"currencyCode\": \"KWD\",\n \"currencyNameEn\": \"Kuwaiti dinar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"965\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇰🇼\"\n },\n {\n \"countryNameEn\": \"Kazakhstan\",\n \"countryNameLocal\": \"Қазақстан, Казахстан\",\n \"countryCode\": \"KZ\",\n \"currencyCode\": \"KZT\",\n \"currencyNameEn\": \"Kazakhstani tenge\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"kk\",\n \"officialLanguageNameEn\": \"Kazakh\",\n \"officialLanguageNameLocal\": \"қазақ тілі\",\n \"countryCallingCode\": \"7\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇰🇿\"\n },\n {\n \"countryNameEn\": \"Lebanon\",\n \"countryNameLocal\": \"لبنان, Liban\",\n \"countryCode\": \"LB\",\n \"currencyCode\": \"LBP\",\n \"currencyNameEn\": \"Lebanese pound\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"961\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇱🇧\"\n },\n {\n \"countryNameEn\": \"Saint Lucia\",\n \"countryNameLocal\": \"Saint Lucia\",\n \"countryCode\": \"LC\",\n \"currencyCode\": \"XCD\",\n \"currencyNameEn\": \"East Caribbean dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1758\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇱🇨\"\n },\n {\n \"countryNameEn\": \"Liechtenstein\",\n \"countryNameLocal\": \"Liechtenstein\",\n \"countryCode\": \"LI\",\n \"currencyCode\": \"CHF\",\n \"currencyNameEn\": \"Swiss franc\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"de\",\n \"officialLanguageNameEn\": \"German\",\n \"officialLanguageNameLocal\": \"Deutsch\",\n \"countryCallingCode\": \"423\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇱🇮\"\n },\n {\n \"countryNameEn\": \"Sri Lanka\",\n \"countryNameLocal\": \"ශ්‍රී ලංකා, இலங்கை\",\n \"countryCode\": \"LK\",\n \"currencyCode\": \"LKR\",\n \"currencyNameEn\": \"Sri Lankan rupee\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"si\",\n \"officialLanguageNameEn\": \"Sinhala, Sinhalese\",\n \"officialLanguageNameLocal\": \"සිංහල\",\n \"countryCallingCode\": \"94\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇱🇰\"\n },\n {\n \"countryNameEn\": \"Liberia\",\n \"countryNameLocal\": \"Liberia\",\n \"countryCode\": \"LR\",\n \"currencyCode\": \"LRD\",\n \"currencyNameEn\": \"Liberian dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"231\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇱🇷\"\n },\n {\n \"countryNameEn\": \"Lesotho\",\n \"countryNameLocal\": \"Lesotho\",\n \"countryCode\": \"LS\",\n \"currencyCode\": \"LSL\",\n \"currencyNameEn\": \"Lesotho loti\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"266\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇱🇸\"\n },\n {\n \"countryNameEn\": \"Lithuania\",\n \"countryNameLocal\": \"Lietuva\",\n \"countryCode\": \"LT\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"PVM kodas\",\n \"tinName\": \"PVM (abbrev. Pridėtinės vertės mokestis) mokėtojo kodas\",\n \"officialLanguageCode\": \"lt\",\n \"officialLanguageNameEn\": \"Lithuanian\",\n \"officialLanguageNameLocal\": \"lietuvių kalba\",\n \"countryCallingCode\": \"370\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇱🇹\"\n },\n {\n \"countryNameEn\": \"Luxembourg\",\n \"countryNameLocal\": \"Lëtzebuerg, Luxembourg, Luxemburg\",\n \"countryCode\": \"LU\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"No. TVA\",\n \"tinName\": \"Numéro d'identification à la taxe sur la valeur ajoutée\",\n \"officialLanguageCode\": \"lb\",\n \"officialLanguageNameEn\": \"Luxembourgish, Letzeburgesch\",\n \"officialLanguageNameLocal\": \"Lëtzebuergesch\",\n \"countryCallingCode\": \"352\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇱🇺\"\n },\n {\n \"countryNameEn\": \"Latvia\",\n \"countryNameLocal\": \"Latvija\",\n \"countryCode\": \"LV\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"PVN\",\n \"tinName\": \"Pievienotās vērtības nodokļa (PVN) reģistrācijas numurs\",\n \"officialLanguageCode\": \"lv\",\n \"officialLanguageNameEn\": \"Latvian\",\n \"officialLanguageNameLocal\": \"latviešu valoda\",\n \"countryCallingCode\": \"371\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇱🇻\"\n },\n {\n \"countryNameEn\": \"Libya\",\n \"countryNameLocal\": \"ليبيا\",\n \"countryCode\": \"LY\",\n \"currencyCode\": \"LYD\",\n \"currencyNameEn\": \"Libyan dinar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"218\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇱🇾\"\n },\n {\n \"countryNameEn\": \"Morocco\",\n \"countryNameLocal\": \"Maroc, ⵍⵎⵖⵔⵉⴱ, المغرب\",\n \"countryCode\": \"MA\",\n \"currencyCode\": \"MAD\",\n \"currencyNameEn\": \"Moroccan dirham\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"212\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇲🇦\"\n },\n {\n \"countryNameEn\": \"Monaco\",\n \"countryNameLocal\": \"Monaco\",\n \"countryCode\": \"MC\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"377\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇲🇨\"\n },\n {\n \"countryNameEn\": \"Montenegro\",\n \"countryNameLocal\": \"Crna Gora, Црна Гора\",\n \"countryCode\": \"ME\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"srp\",\n \"officialLanguageNameEn\": \"српски језик\",\n \"officialLanguageNameLocal\": \"\",\n \"countryCallingCode\": \"382\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇲🇪\"\n },\n {\n \"countryNameEn\": \"Saint Martin (French part)\",\n \"countryNameLocal\": \"Saint-Martin\",\n \"countryCode\": \"MF\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"590\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇲🇫\"\n },\n {\n \"countryNameEn\": \"Madagascar\",\n \"countryNameLocal\": \"Madagasikara, Madagascar\",\n \"countryCode\": \"MG\",\n \"currencyCode\": \"MGA\",\n \"currencyNameEn\": \"Malagasy ariary\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"mg\",\n \"officialLanguageNameEn\": \"Malagasy\",\n \"officialLanguageNameLocal\": \"fiteny malagasy\",\n \"countryCallingCode\": \"261\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇲🇬\"\n },\n {\n \"countryNameEn\": \"Mali\",\n \"countryNameLocal\": \"Mali\",\n \"countryCode\": \"ML\",\n \"currencyCode\": \"XOF\",\n \"currencyNameEn\": \"CFA franc BCEAO\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"223\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇲🇱\"\n },\n {\n \"countryNameEn\": \"Myanmar\",\n \"countryNameLocal\": \"မြန်မာ\",\n \"countryCode\": \"MM\",\n \"currencyCode\": \"MMK\",\n \"currencyNameEn\": \"Myanmar kyat\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"my\",\n \"officialLanguageNameEn\": \"Burmese\",\n \"officialLanguageNameLocal\": \"ဗမာစာ\",\n \"countryCallingCode\": \"95\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇲🇲\"\n },\n {\n \"countryNameEn\": \"Mongolia\",\n \"countryNameLocal\": \"Монгол Улс\",\n \"countryCode\": \"MN\",\n \"currencyCode\": \"MNT\",\n \"currencyNameEn\": \"Mongolian tögrög\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"mn\",\n \"officialLanguageNameEn\": \"Mongolian\",\n \"officialLanguageNameLocal\": \"Монгол хэл\",\n \"countryCallingCode\": \"976\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇲🇳\"\n },\n {\n \"countryNameEn\": \"Macao\",\n \"countryNameLocal\": \"澳門, Macau\",\n \"countryCode\": \"MO\",\n \"currencyCode\": \"MOP\",\n \"currencyNameEn\": \"Macanese pataca\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"zh-hant\",\n \"officialLanguageNameEn\": \"\",\n \"officialLanguageNameLocal\": \"\",\n \"countryCallingCode\": \"853\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇲🇴\"\n },\n {\n \"countryNameEn\": \"Martinique\",\n \"countryNameLocal\": \"Martinique\",\n \"countryCode\": \"MQ\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"596\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇲🇶\"\n },\n {\n \"countryNameEn\": \"Mauritania\",\n \"countryNameLocal\": \"موريتانيا, Mauritanie\",\n \"countryCode\": \"MR\",\n \"currencyCode\": \"MRU\",\n \"currencyNameEn\": \"\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"222\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇲🇷\"\n },\n {\n \"countryNameEn\": \"Montserrat\",\n \"countryNameLocal\": \"Montserrat\",\n \"countryCode\": \"MS\",\n \"currencyCode\": \"XCD\",\n \"currencyNameEn\": \"East Caribbean dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1664\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇲🇸\"\n },\n {\n \"countryNameEn\": \"Malta\",\n \"countryNameLocal\": \"Malta\",\n \"countryCode\": \"MT\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"Vat No.\",\n \"tinName\": \"Vat reg. no.\",\n \"officialLanguageCode\": \"mt\",\n \"officialLanguageNameEn\": \"Maltese\",\n \"officialLanguageNameLocal\": \"Malti\",\n \"countryCallingCode\": \"356\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇲🇹\"\n },\n {\n \"countryNameEn\": \"Mauritius\",\n \"countryNameLocal\": \"Maurice, Mauritius\",\n \"countryCode\": \"MU\",\n \"currencyCode\": \"MUR\",\n \"currencyNameEn\": \"Mauritian rupee\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"mfe\",\n \"officialLanguageNameEn\": \"\",\n \"officialLanguageNameLocal\": \"\",\n \"countryCallingCode\": \"230\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇲🇺\"\n },\n {\n \"countryNameEn\": \"Maldives\",\n \"countryNameLocal\": \"\",\n \"countryCode\": \"MV\",\n \"currencyCode\": \"MVR\",\n \"currencyNameEn\": \"Maldivian rufiyaa\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"dv\",\n \"officialLanguageNameEn\": \"Divehi, Dhivehi, Maldivian\",\n \"officialLanguageNameLocal\": \"ދިވެހި\",\n \"countryCallingCode\": \"960\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇲🇻\"\n },\n {\n \"countryNameEn\": \"Malawi\",\n \"countryNameLocal\": \"Malawi\",\n \"countryCode\": \"MW\",\n \"currencyCode\": \"MWK\",\n \"currencyNameEn\": \"Malawian kwacha\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"265\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇲🇼\"\n },\n {\n \"countryNameEn\": \"Mexico\",\n \"countryNameLocal\": \"México\",\n \"countryCode\": \"MX\",\n \"currencyCode\": \"MXN\",\n \"currencyNameEn\": \"Mexican peso\",\n \"tinType\": \"RFC\",\n \"tinName\": \"Registro Federal de Contribuyentes\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"52\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇲🇽\"\n },\n {\n \"countryNameEn\": \"Malaysia\",\n \"countryNameLocal\": \"\",\n \"countryCode\": \"MY\",\n \"currencyCode\": \"MYR\",\n \"currencyNameEn\": \"Malaysian ringgit\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ms\",\n \"officialLanguageNameEn\": \"Malay\",\n \"officialLanguageNameLocal\": \"Bahasa Melayu, بهاس ملايو‎\",\n \"countryCallingCode\": \"60\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇲🇾\"\n },\n {\n \"countryNameEn\": \"Mozambique\",\n \"countryNameLocal\": \"Mozambique\",\n \"countryCode\": \"MZ\",\n \"currencyCode\": \"MZN\",\n \"currencyNameEn\": \"Mozambican metical\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"pt\",\n \"officialLanguageNameEn\": \"Portuguese\",\n \"officialLanguageNameLocal\": \"Português\",\n \"countryCallingCode\": \"258\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇲🇿\"\n },\n {\n \"countryNameEn\": \"Namibia\",\n \"countryNameLocal\": \"Namibia\",\n \"countryCode\": \"NA\",\n \"currencyCode\": \"NAD\",\n \"currencyNameEn\": \"Namibian dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"264\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇳🇦\"\n },\n {\n \"countryNameEn\": \"New Caledonia\",\n \"countryNameLocal\": \"Nouvelle-Calédonie\",\n \"countryCode\": \"NC\",\n \"currencyCode\": \"XPF\",\n \"currencyNameEn\": \"CFP franc (franc Pacifique)\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"687\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇳🇨\"\n },\n {\n \"countryNameEn\": \"Norfolk Island\",\n \"countryNameLocal\": \"Norfolk Island\",\n \"countryCode\": \"NF\",\n \"currencyCode\": \"AUD\",\n \"currencyNameEn\": \"Australian dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"672\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇳🇫\"\n },\n {\n \"countryNameEn\": \"Nigeria\",\n \"countryNameLocal\": \"Nigeria\",\n \"countryCode\": \"NG\",\n \"currencyCode\": \"NGN\",\n \"currencyNameEn\": \"Nigerian naira\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"234\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇳🇬\"\n },\n {\n \"countryNameEn\": \"Nicaragua\",\n \"countryNameLocal\": \"Nicaragua\",\n \"countryCode\": \"NI\",\n \"currencyCode\": \"NIO\",\n \"currencyNameEn\": \"Nicaraguan córdoba\",\n \"tinType\": \"RUC\",\n \"tinName\": \"Registro Unico de Contribuyentes\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"505\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇳🇮\"\n },\n {\n \"countryNameEn\": \"Norway\",\n \"countryNameLocal\": \"Norge, Noreg\",\n \"countryCode\": \"NO\",\n \"currencyCode\": \"NOK\",\n \"currencyNameEn\": \"Norwegian krone\",\n \"tinType\": \"Orgnr\",\n \"tinName\": \"Organisasjonsnummer\",\n \"officialLanguageCode\": \"nb\",\n \"officialLanguageNameEn\": \"Norwegian Bokmål\",\n \"officialLanguageNameLocal\": \"Norsk Bokmål\",\n \"countryCallingCode\": \"47\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇳🇴\"\n },\n {\n \"countryNameEn\": \"Nepal\",\n \"countryNameLocal\": \"\",\n \"countryCode\": \"NP\",\n \"currencyCode\": \"NPR\",\n \"currencyNameEn\": \"Nepalese rupee\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ne\",\n \"officialLanguageNameEn\": \"Nepali\",\n \"officialLanguageNameLocal\": \"नेपाली\",\n \"countryCallingCode\": \"977\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇳🇵\"\n },\n {\n \"countryNameEn\": \"Nauru\",\n \"countryNameLocal\": \"Nauru\",\n \"countryCode\": \"NR\",\n \"currencyCode\": \"AUD\",\n \"currencyNameEn\": \"Australian dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"na\",\n \"officialLanguageNameEn\": \"Nauru\",\n \"officialLanguageNameLocal\": \"Dorerin Naoero\",\n \"countryCallingCode\": \"674\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇳🇷\"\n },\n {\n \"countryNameEn\": \"Niue\",\n \"countryNameLocal\": \"Niue\",\n \"countryCode\": \"NU\",\n \"currencyCode\": \"NZD\",\n \"currencyNameEn\": \"New Zealand dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"niu\",\n \"officialLanguageNameEn\": \"\",\n \"officialLanguageNameLocal\": \"\",\n \"countryCallingCode\": \"683\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇳🇺\"\n },\n {\n \"countryNameEn\": \"New Zealand\",\n \"countryNameLocal\": \"New Zealand\",\n \"countryCode\": \"NZ\",\n \"currencyCode\": \"NZD\",\n \"currencyNameEn\": \"New Zealand dollar\",\n \"tinType\": \"NZBN\",\n \"tinName\": \"NZ Business Number\",\n \"officialLanguageCode\": \"mi\",\n \"officialLanguageNameEn\": \"Maori\",\n \"officialLanguageNameLocal\": \"te reo Māori\",\n \"countryCallingCode\": \"64\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇳🇿\"\n },\n {\n \"countryNameEn\": \"Oman\",\n \"countryNameLocal\": \"سلطنة عُمان\",\n \"countryCode\": \"OM\",\n \"currencyCode\": \"OMR\",\n \"currencyNameEn\": \"Omani rial\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"968\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇴🇲\"\n },\n {\n \"countryNameEn\": \"Panama\",\n \"countryNameLocal\": \"Panama\",\n \"countryCode\": \"PA\",\n \"currencyCode\": \"PAB\",\n \"currencyNameEn\": \"Panamanian balboa\",\n \"tinType\": \"RUC\",\n \"tinName\": \"Registro Unico de Contribuyentes\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"507\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇵🇦\"\n },\n {\n \"countryNameEn\": \"Peru\",\n \"countryNameLocal\": \"Perú\",\n \"countryCode\": \"PE\",\n \"currencyCode\": \"PEN\",\n \"currencyNameEn\": \"Peruvian sol\",\n \"tinType\": \"RUC\",\n \"tinName\": \"Registro Unico de Contribuyentes\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"51\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇵🇪\"\n },\n {\n \"countryNameEn\": \"French Polynesia\",\n \"countryNameLocal\": \"Polynésie française\",\n \"countryCode\": \"PF\",\n \"currencyCode\": \"XPF\",\n \"currencyNameEn\": \"CFP franc (franc Pacifique)\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"689\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇵🇫\"\n },\n {\n \"countryNameEn\": \"Papua New Guinea\",\n \"countryNameLocal\": \"Papua New Guinea\",\n \"countryCode\": \"PG\",\n \"currencyCode\": \"PGK\",\n \"currencyNameEn\": \"Papua New Guinean kina\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"675\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇵🇬\"\n },\n {\n \"countryNameEn\": \"Pakistan\",\n \"countryNameLocal\": \"پاکستان\",\n \"countryCode\": \"PK\",\n \"currencyCode\": \"PKR\",\n \"currencyNameEn\": \"Pakistani rupee\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"92\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇵🇰\"\n },\n {\n \"countryNameEn\": \"Poland\",\n \"countryNameLocal\": \"Polska\",\n \"countryCode\": \"PL\",\n \"currencyCode\": \"PLN\",\n \"currencyNameEn\": \"Polish złoty\",\n \"tinType\": \"NIP\",\n \"tinName\": \"numer identyfikacji podatkowej\",\n \"officialLanguageCode\": \"pl\",\n \"officialLanguageNameEn\": \"Polish\",\n \"officialLanguageNameLocal\": \"język polski, polszczyzna\",\n \"countryCallingCode\": \"48\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇵🇱\"\n },\n {\n \"countryNameEn\": \"Saint Pierre and Miquelon\",\n \"countryNameLocal\": \"Saint-Pierre-et-Miquelon\",\n \"countryCode\": \"PM\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"508\",\n \"areaCodes\": [],\n \"region\": \"North America\",\n \"flag\": \"🇵🇲\"\n },\n {\n \"countryNameEn\": \"Pitcairn\",\n \"countryNameLocal\": \"Pitcairn\",\n \"countryCode\": \"PN\",\n \"currencyCode\": \"NZD\",\n \"currencyNameEn\": \"New Zealand dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"64\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇵🇳\"\n },\n {\n \"countryNameEn\": \"Puerto Rico\",\n \"countryNameLocal\": \"Puerto Rico\",\n \"countryCode\": \"PR\",\n \"currencyCode\": \"USD\",\n \"currencyNameEn\": \"United States dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"1\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇵🇷\"\n },\n {\n \"countryNameEn\": \"Palestine, State of\",\n \"countryNameLocal\": \"Palestinian Territory\",\n \"countryCode\": \"PS\",\n \"currencyCode\": \"\",\n \"currencyNameEn\": \"\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"970\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇵🇸\"\n },\n {\n \"countryNameEn\": \"Portugal\",\n \"countryNameLocal\": \"Portugal\",\n \"countryCode\": \"PT\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"NIPC\",\n \"tinName\": \"Número de Identificação de Pessoa Coletiva (NIPC)\",\n \"officialLanguageCode\": \"pt\",\n \"officialLanguageNameEn\": \"Portuguese\",\n \"officialLanguageNameLocal\": \"Português\",\n \"countryCallingCode\": \"351\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇵🇹\"\n },\n {\n \"countryNameEn\": \"Palau\",\n \"countryNameLocal\": \"Palau\",\n \"countryCode\": \"PW\",\n \"currencyCode\": \"USD\",\n \"currencyNameEn\": \"United States dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"680\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇵🇼\"\n },\n {\n \"countryNameEn\": \"Paraguay\",\n \"countryNameLocal\": \"Paraguay\",\n \"countryCode\": \"PY\",\n \"currencyCode\": \"PYG\",\n \"currencyNameEn\": \"Paraguayan guaraní\",\n \"tinType\": \"RUC\",\n \"tinName\": \"Registro Unico de Contribuyentes\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"595\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇵🇾\"\n },\n {\n \"countryNameEn\": \"Qatar\",\n \"countryNameLocal\": \"قطر\",\n \"countryCode\": \"QA\",\n \"currencyCode\": \"QAR\",\n \"currencyNameEn\": \"Qatari riyal\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"974\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇶🇦\"\n },\n {\n \"countryNameEn\": \"Réunion\",\n \"countryNameLocal\": \"La Réunion\",\n \"countryCode\": \"RE\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"262\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇷🇪\"\n },\n {\n \"countryNameEn\": \"Romania\",\n \"countryNameLocal\": \"România\",\n \"countryCode\": \"RO\",\n \"currencyCode\": \"RON\",\n \"currencyNameEn\": \"Romanian leu\",\n \"tinType\": \"CIF\",\n \"tinName\": \"Codul de identificare fiscală\",\n \"officialLanguageCode\": \"ro\",\n \"officialLanguageNameEn\": \"Romanian, Moldavian, Moldovan\",\n \"officialLanguageNameLocal\": \"Română\",\n \"countryCallingCode\": \"40\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇷🇴\"\n },\n {\n \"countryNameEn\": \"Serbia\",\n \"countryNameLocal\": \"Србија\",\n \"countryCode\": \"RS\",\n \"currencyCode\": \"RSD\",\n \"currencyNameEn\": \"Serbian dinar\",\n \"tinType\": \"PIB\",\n \"tinName\": \"Poreski identifikacioni broj\",\n \"officialLanguageCode\": \"sr\",\n \"officialLanguageNameEn\": \"Serbian\",\n \"officialLanguageNameLocal\": \"српски језик\",\n \"countryCallingCode\": \"381\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇷🇸\"\n },\n {\n \"countryNameEn\": \"Russia\",\n \"countryNameLocal\": \"Россия\",\n \"countryCode\": \"RU\",\n \"currencyCode\": \"RUB\",\n \"currencyNameEn\": \"Russian ruble\",\n \"tinType\": \"ИНН\",\n \"tinName\": \"Идентификационный номер налогоплательщика\",\n \"officialLanguageCode\": \"ru\",\n \"officialLanguageNameEn\": \"Russian\",\n \"officialLanguageNameLocal\": \"русский\",\n \"countryCallingCode\": \"7\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇷🇺\"\n },\n {\n \"countryNameEn\": \"Rwanda\",\n \"countryNameLocal\": \"Rwanda\",\n \"countryCode\": \"RW\",\n \"currencyCode\": \"RWF\",\n \"currencyNameEn\": \"Rwandan franc\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"rw\",\n \"officialLanguageNameEn\": \"Kinyarwanda\",\n \"officialLanguageNameLocal\": \"Ikinyarwanda\",\n \"countryCallingCode\": \"250\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇷🇼\"\n },\n {\n \"countryNameEn\": \"Saudi Arabia\",\n \"countryNameLocal\": \"السعودية\",\n \"countryCode\": \"SA\",\n \"currencyCode\": \"SAR\",\n \"currencyNameEn\": \"Saudi riyal\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"966\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇸🇦\"\n },\n {\n \"countryNameEn\": \"Solomon Islands\",\n \"countryNameLocal\": \"Solomon Islands\",\n \"countryCode\": \"SB\",\n \"currencyCode\": \"SBD\",\n \"currencyNameEn\": \"Solomon Islands dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"677\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇸🇧\"\n },\n {\n \"countryNameEn\": \"Seychelles\",\n \"countryNameLocal\": \"Seychelles\",\n \"countryCode\": \"SC\",\n \"currencyCode\": \"SCR\",\n \"currencyNameEn\": \"Seychelles rupee\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"248\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇸🇨\"\n },\n {\n \"countryNameEn\": \"Sweden\",\n \"countryNameLocal\": \"Sverige\",\n \"countryCode\": \"SE\",\n \"currencyCode\": \"SEK\",\n \"currencyNameEn\": \"Swedish krona/kronor\",\n \"tinType\": \"Momsnr.\",\n \"tinName\": \"VAT-nummer\",\n \"officialLanguageCode\": \"sv\",\n \"officialLanguageNameEn\": \"Swedish\",\n \"officialLanguageNameLocal\": \"Svenska\",\n \"countryCallingCode\": \"46\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇸🇪\"\n },\n {\n \"countryNameEn\": \"Singapore\",\n \"countryNameLocal\": \"Singapore\",\n \"countryCode\": \"SG\",\n \"currencyCode\": \"SGD\",\n \"currencyNameEn\": \"Singapore dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"zh-hans\",\n \"officialLanguageNameEn\": \"\",\n \"officialLanguageNameLocal\": \"\",\n \"countryCallingCode\": \"65\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇸🇬\"\n },\n {\n \"countryNameEn\": \"Saint Helena, Ascension and Tristan da Cunha\",\n \"countryNameLocal\": \"Saint Helena\",\n \"countryCode\": \"SH\",\n \"currencyCode\": \"SHP\",\n \"currencyNameEn\": \"Saint Helena pound\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"290\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇸🇭\"\n },\n {\n \"countryNameEn\": \"Slovenia\",\n \"countryNameLocal\": \"Slovenija\",\n \"countryCode\": \"SI\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"ID za DDV\",\n \"tinName\": \"Davčna številka\",\n \"officialLanguageCode\": \"sl\",\n \"officialLanguageNameEn\": \"Slovenian\",\n \"officialLanguageNameLocal\": \"Slovenski Jezik, Slovenščina\",\n \"countryCallingCode\": \"386\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇸🇮\"\n },\n {\n \"countryNameEn\": \"Svalbard and Jan Mayen\",\n \"countryNameLocal\": \"Svalbard and Jan Mayen\",\n \"countryCode\": \"SJ\",\n \"currencyCode\": \"NOK\",\n \"currencyNameEn\": \"Norwegian krone\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"no\",\n \"officialLanguageNameEn\": \"Norwegian\",\n \"officialLanguageNameLocal\": \"Norsk\",\n \"countryCallingCode\": \"4779\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇸🇯\"\n },\n {\n \"countryNameEn\": \"Slovakia\",\n \"countryNameLocal\": \"Slovensko\",\n \"countryCode\": \"SK\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"IČ DPH\",\n \"tinName\": \"Identifikačné číslo pre daň z pridanej hodnoty\",\n \"officialLanguageCode\": \"sk\",\n \"officialLanguageNameEn\": \"Slovak\",\n \"officialLanguageNameLocal\": \"Slovenčina, Slovenský Jazyk\",\n \"countryCallingCode\": \"421\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇸🇰\"\n },\n {\n \"countryNameEn\": \"Sierra Leone\",\n \"countryNameLocal\": \"Sierra Leone\",\n \"countryCode\": \"SL\",\n \"currencyCode\": \"SLL\",\n \"currencyNameEn\": \"Sierra Leonean leone\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"232\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇸🇱\"\n },\n {\n \"countryNameEn\": \"Republic of San Marino\",\n \"countryNameLocal\": \"Repubblica di San Marino\",\n \"countryCode\": \"SM\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"C.O.E.\",\n \"tinName\": \"Codice operatore economico\",\n \"officialLanguageCode\": \"it\",\n \"officialLanguageNameEn\": \"Italian\",\n \"officialLanguageNameLocal\": \"Italiano\",\n \"countryCallingCode\": \"378\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇸🇲\"\n },\n {\n \"countryNameEn\": \"Senegal\",\n \"countryNameLocal\": \"Sénégal\",\n \"countryCode\": \"SN\",\n \"currencyCode\": \"XOF\",\n \"currencyNameEn\": \"CFA franc BCEAO\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"221\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇸🇳\"\n },\n {\n \"countryNameEn\": \"Somalia\",\n \"countryNameLocal\": \"Somalia, الصومال\",\n \"countryCode\": \"SO\",\n \"currencyCode\": \"SOS\",\n \"currencyNameEn\": \"Somali shilling\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"so\",\n \"officialLanguageNameEn\": \"Somali\",\n \"officialLanguageNameLocal\": \"Soomaaliga, af Soomaali\",\n \"countryCallingCode\": \"252\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇸🇴\"\n },\n {\n \"countryNameEn\": \"Suriname\",\n \"countryNameLocal\": \"Suriname\",\n \"countryCode\": \"SR\",\n \"currencyCode\": \"SRD\",\n \"currencyNameEn\": \"Surinamese dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"nl\",\n \"officialLanguageNameEn\": \"Dutch, Flemish\",\n \"officialLanguageNameLocal\": \"Nederlands, Vlaams\",\n \"countryCallingCode\": \"597\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇸🇷\"\n },\n {\n \"countryNameEn\": \"South Sudan\",\n \"countryNameLocal\": \"South Sudan\",\n \"countryCode\": \"SS\",\n \"currencyCode\": \"SSP\",\n \"currencyNameEn\": \"South Sudanese pound\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"211\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇸🇸\"\n },\n {\n \"countryNameEn\": \"Sao Tome and Principe\",\n \"countryNameLocal\": \"São Tomé e Príncipe\",\n \"countryCode\": \"ST\",\n \"currencyCode\": \"STN\",\n \"currencyNameEn\": \"\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"pt\",\n \"officialLanguageNameEn\": \"Portuguese\",\n \"officialLanguageNameLocal\": \"Português\",\n \"countryCallingCode\": \"239\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇸🇹\"\n },\n {\n \"countryNameEn\": \"El Salvador\",\n \"countryNameLocal\": \"El Salvador\",\n \"countryCode\": \"SV\",\n \"currencyCode\": \"SVC\",\n \"currencyNameEn\": \"Salvadoran colón\",\n \"tinType\": \"NIT\",\n \"tinName\": \"Número de Identificación Tributaria\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"503\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇸🇻\"\n },\n {\n \"countryNameEn\": \"Sint Maarten (Dutch part)\",\n \"countryNameLocal\": \"Sint Maarten\",\n \"countryCode\": \"SX\",\n \"currencyCode\": \"ANG\",\n \"currencyNameEn\": \"Netherlands Antillean guilder\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"nl\",\n \"officialLanguageNameEn\": \"Dutch, Flemish\",\n \"officialLanguageNameLocal\": \"Nederlands, Vlaams\",\n \"countryCallingCode\": \"1721\",\n \"areaCodes\": [],\n \"region\": \"Unknown\",\n \"flag\": \"🇸🇽\"\n },\n {\n \"countryNameEn\": \"Syrian Arab Republic\",\n \"countryNameLocal\": \"سوريا, Sūriyya\",\n \"countryCode\": \"SY\",\n \"currencyCode\": \"SYP\",\n \"currencyNameEn\": \"Syrian pound\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"963\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇸🇾\"\n },\n {\n \"countryNameEn\": \"Chad\",\n \"countryNameLocal\": \"Tchad, تشاد\",\n \"countryCode\": \"TD\",\n \"currencyCode\": \"XAF\",\n \"currencyNameEn\": \"CFA franc BEAC\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"235\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇹🇩\"\n },\n {\n \"countryNameEn\": \"Togo\",\n \"countryNameLocal\": \"Togo\",\n \"countryCode\": \"TG\",\n \"currencyCode\": \"XOF\",\n \"currencyNameEn\": \"CFA franc BCEAO\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"228\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇹🇬\"\n },\n {\n \"countryNameEn\": \"Thailand\",\n \"countryNameLocal\": \"ประเทศไทย\",\n \"countryCode\": \"TH\",\n \"currencyCode\": \"THB\",\n \"currencyNameEn\": \"Thai baht\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"th\",\n \"officialLanguageNameEn\": \"Thai\",\n \"officialLanguageNameLocal\": \"ไทย\",\n \"countryCallingCode\": \"66\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇹🇭\"\n },\n {\n \"countryNameEn\": \"Tajikistan\",\n \"countryNameLocal\": \",\",\n \"countryCode\": \"TJ\",\n \"currencyCode\": \"TJS\",\n \"currencyNameEn\": \"Tajikistani somoni\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"tg\",\n \"officialLanguageNameEn\": \"Tajik\",\n \"officialLanguageNameLocal\": \"тоҷикӣ, toçikī, تاجیکی‎\",\n \"countryCallingCode\": \"992\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇹🇯\"\n },\n {\n \"countryNameEn\": \"Tokelau\",\n \"countryNameLocal\": \"Tokelau\",\n \"countryCode\": \"TK\",\n \"currencyCode\": \"NZD\",\n \"currencyNameEn\": \"New Zealand dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"tkl\",\n \"officialLanguageNameEn\": \"\",\n \"officialLanguageNameLocal\": \"\",\n \"countryCallingCode\": \"690\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇹🇰\"\n },\n {\n \"countryNameEn\": \"Timor-Leste\",\n \"countryNameLocal\": \"Timor-Leste, Timor Lorosa'e\",\n \"countryCode\": \"TL\",\n \"currencyCode\": \"USD\",\n \"currencyNameEn\": \"United States dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"pt\",\n \"officialLanguageNameEn\": \"Portuguese\",\n \"officialLanguageNameLocal\": \"Português\",\n \"countryCallingCode\": \"670\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇹🇱\"\n },\n {\n \"countryNameEn\": \"Turkmenistan\",\n \"countryNameLocal\": \"Türkmenistan\",\n \"countryCode\": \"TM\",\n \"currencyCode\": \"TMT\",\n \"currencyNameEn\": \"Turkmenistan manat\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"tk\",\n \"officialLanguageNameEn\": \"Turkmen\",\n \"officialLanguageNameLocal\": \"Türkmen, Түркмен\",\n \"countryCallingCode\": \"993\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇹🇲\"\n },\n {\n \"countryNameEn\": \"Tunisia\",\n \"countryNameLocal\": \"تونس, Tunisie\",\n \"countryCode\": \"TN\",\n \"currencyCode\": \"TND\",\n \"currencyNameEn\": \"Tunisian dinar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"216\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇹🇳\"\n },\n {\n \"countryNameEn\": \"Tonga\",\n \"countryNameLocal\": \"Tonga\",\n \"countryCode\": \"TO\",\n \"currencyCode\": \"TOP\",\n \"currencyNameEn\": \"Tongan paʻanga\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"676\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇹🇴\"\n },\n {\n \"countryNameEn\": \"Turkey\",\n \"countryNameLocal\": \"Türkiye\",\n \"countryCode\": \"TR\",\n \"currencyCode\": \"TRY\",\n \"currencyNameEn\": \"Turkish lira\",\n \"tinType\": \"KDV\",\n \"tinName\": \"Vergi Kimlik Numarası\",\n \"officialLanguageCode\": \"tr\",\n \"officialLanguageNameEn\": \"Turkish\",\n \"officialLanguageNameLocal\": \"Türkçe\",\n \"countryCallingCode\": \"90\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇹🇷\"\n },\n {\n \"countryNameEn\": \"Trinidad and Tobago\",\n \"countryNameLocal\": \"Trinidad and Tobago\",\n \"countryCode\": \"TT\",\n \"currencyCode\": \"TTD\",\n \"currencyNameEn\": \"Trinidad and Tobago dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"868\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇹🇹\"\n },\n {\n \"countryNameEn\": \"Tuvalu\",\n \"countryNameLocal\": \"Tuvalu\",\n \"countryCode\": \"TV\",\n \"currencyCode\": \"AUD\",\n \"currencyNameEn\": \"Australian dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"688\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇹🇻\"\n },\n {\n \"countryNameEn\": \"United Republic of Tanzania\",\n \"countryNameLocal\": \"Tanzania\",\n \"countryCode\": \"TZ\",\n \"currencyCode\": \"TZS\",\n \"currencyNameEn\": \"Tanzanian shilling\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"sw\",\n \"officialLanguageNameEn\": \"Swahili\",\n \"officialLanguageNameLocal\": \"Kiswahili\",\n \"countryCallingCode\": \"255\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇹🇿\"\n },\n {\n \"countryNameEn\": \"Ukraine\",\n \"countryNameLocal\": \"Україна\",\n \"countryCode\": \"UA\",\n \"currencyCode\": \"UAH\",\n \"currencyNameEn\": \"Ukrainian hryvnia\",\n \"tinType\": \"ІНПП\",\n \"tinName\": \"Ідентифікаційний номер платника податків\",\n \"officialLanguageCode\": \"uk\",\n \"officialLanguageNameEn\": \"Ukrainian\",\n \"officialLanguageNameLocal\": \"Українська\",\n \"countryCallingCode\": \"380\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇺🇦\"\n },\n {\n \"countryNameEn\": \"Uganda\",\n \"countryNameLocal\": \"Uganda\",\n \"countryCode\": \"UG\",\n \"currencyCode\": \"UGX\",\n \"currencyNameEn\": \"Ugandan shilling\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"256\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇺🇬\"\n },\n {\n \"countryNameEn\": \"United States of America\",\n \"countryNameLocal\": \"United States of America\",\n \"countryCode\": \"US\",\n \"currencyCode\": \"USD\",\n \"currencyNameEn\": \"United States dollar\",\n \"tinType\": \"EIN\",\n \"tinName\": \"Tax Identification Number\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1\",\n \"areaCodes\": [],\n \"region\": \"North America\",\n \"flag\": \"🇺🇸\"\n },\n {\n \"countryNameEn\": \"Uruguay\",\n \"countryNameLocal\": \"Uruguay\",\n \"countryCode\": \"UY\",\n \"currencyCode\": \"UYU\",\n \"currencyNameEn\": \"Uruguayan peso\",\n \"tinType\": \"RUT\",\n \"tinName\": \"Registro Único Tributario\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"598\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇺🇾\"\n },\n {\n \"countryNameEn\": \"Uzbekistan\",\n \"countryNameLocal\": \"\",\n \"countryCode\": \"UZ\",\n \"currencyCode\": \"UZS\",\n \"currencyNameEn\": \"Uzbekistan som\",\n \"tinType\": \"СТИР\",\n \"tinName\": \"Солиқ тўловчиларнинг идентификация рақами\",\n \"officialLanguageCode\": \"uz\",\n \"officialLanguageNameEn\": \"Uzbek\",\n \"officialLanguageNameLocal\": \"Oʻzbek, Ўзбек, أۇزبېك‎\",\n \"countryCallingCode\": \"998\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇺🇿\"\n },\n {\n \"countryNameEn\": \"Saint Vincent and the Grenadines\",\n \"countryNameLocal\": \"Saint Vincent and the Grenadines\",\n \"countryCode\": \"VC\",\n \"currencyCode\": \"XCD\",\n \"currencyNameEn\": \"East Caribbean dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1784\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇻🇨\"\n },\n {\n \"countryNameEn\": \"Venezuela (Bolivarian Republic of)\",\n \"countryNameLocal\": \"Venezuela\",\n \"countryCode\": \"VE\",\n \"currencyCode\": \"VES\",\n \"currencyNameEn\": \"\",\n \"tinType\": \"RIF\",\n \"tinName\": \"Registro de Informacion Fiscal\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"58\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇻🇪\"\n },\n {\n \"countryNameEn\": \"Virgin Islands (British)\",\n \"countryNameLocal\": \"British Virgin Islands\",\n \"countryCode\": \"VG\",\n \"currencyCode\": \"USD\",\n \"currencyNameEn\": \"United States dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1284\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇻🇬\"\n },\n {\n \"countryNameEn\": \"Virgin Islands (U.S.)\",\n \"countryNameLocal\": \"United States Virgin Islands\",\n \"countryCode\": \"VI\",\n \"currencyCode\": \"USD\",\n \"currencyNameEn\": \"United States dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1340\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇻🇮\"\n },\n {\n \"countryNameEn\": \"Vietnam\",\n \"countryNameLocal\": \"Việt Nam\",\n \"countryCode\": \"VN\",\n \"currencyCode\": \"VND\",\n \"currencyNameEn\": \"Vietnamese đồng\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"vi\",\n \"officialLanguageNameEn\": \"Vietnamese\",\n \"officialLanguageNameLocal\": \"Tiếng Việt\",\n \"countryCallingCode\": \"84\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇻🇳\"\n },\n {\n \"countryNameEn\": \"Vanuatu\",\n \"countryNameLocal\": \"Vanuatu\",\n \"countryCode\": \"VU\",\n \"currencyCode\": \"VUV\",\n \"currencyNameEn\": \"Vanuatu vatu\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"bi\",\n \"officialLanguageNameEn\": \"Bislama\",\n \"officialLanguageNameLocal\": \"Bislama\",\n \"countryCallingCode\": \"678\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇻🇺\"\n },\n {\n \"countryNameEn\": \"Wallis and Futuna\",\n \"countryNameLocal\": \"Wallis-et-Futuna\",\n \"countryCode\": \"WF\",\n \"currencyCode\": \"XPF\",\n \"currencyNameEn\": \"CFP franc (franc Pacifique)\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"681\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇼🇫\"\n },\n {\n \"countryNameEn\": \"Samoa\",\n \"countryNameLocal\": \"Samoa\",\n \"countryCode\": \"WS\",\n \"currencyCode\": \"WST\",\n \"currencyNameEn\": \"Samoan tala\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"sm\",\n \"officialLanguageNameEn\": \"Samoan\",\n \"officialLanguageNameLocal\": \"gagana fa'a Samoa\",\n \"countryCallingCode\": \"685\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇼🇸\"\n },\n {\n \"countryNameEn\": \"Yemen\",\n \"countryNameLocal\": \"اليَمَن\",\n \"countryCode\": \"YE\",\n \"currencyCode\": \"YER\",\n \"currencyNameEn\": \"Yemeni rial\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"967\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇾🇪\"\n },\n {\n \"countryNameEn\": \"Mayotte\",\n \"countryNameLocal\": \"Mayotte\",\n \"countryCode\": \"YT\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"262\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇾🇹\"\n },\n {\n \"countryNameEn\": \"South Africa\",\n \"countryNameLocal\": \"South Africa\",\n \"countryCode\": \"ZA\",\n \"currencyCode\": \"ZAR\",\n \"currencyNameEn\": \"South African rand\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"27\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇿🇦\"\n },\n {\n \"countryNameEn\": \"Zambia\",\n \"countryNameLocal\": \"Zambia\",\n \"countryCode\": \"ZM\",\n \"currencyCode\": \"ZMW\",\n \"currencyNameEn\": \"Zambian kwacha\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"260\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇿🇲\"\n },\n {\n \"countryNameEn\": \"Zimbabwe\",\n \"countryNameLocal\": \"Zimbabwe\",\n \"countryCode\": \"ZW\",\n \"currencyCode\": \"ZWL\",\n \"currencyNameEn\": \"Zimbabwean dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"263\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇿🇼\"\n },\n {\n \"countryNameEn\": \"Eswatini\",\n \"countryNameLocal\": \"Swaziland\",\n \"countryCode\": \"SZ\",\n \"currencyCode\": \"SZL\",\n \"currencyNameEn\": \"Swazi lilangeni\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"268\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇸🇿\"\n },\n {\n \"countryNameEn\": \"North Macedonia\",\n \"countryNameLocal\": \"Македонија\",\n \"countryCode\": \"MK\",\n \"currencyCode\": \"MKD\",\n \"currencyNameEn\": \"Macedonian denar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"mk\",\n \"officialLanguageNameEn\": \"Macedonian\",\n \"officialLanguageNameLocal\": \"македонски јазик\",\n \"countryCallingCode\": \"389\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇲🇰\"\n },\n {\n \"countryNameEn\": \"Philippines\",\n \"countryNameLocal\": \"Philippines\",\n \"countryCode\": \"PH\",\n \"currencyCode\": \"PHP\",\n \"currencyNameEn\": \"Philippine peso\",\n \"tinType\": \"TIN\",\n \"tinName\": \"Tax Identification Number\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"63\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇵🇭\"\n },\n {\n \"countryNameEn\": \"Netherlands\",\n \"countryNameLocal\": \"Nederland\",\n \"countryCode\": \"NL\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"Btw-nr.\",\n \"tinName\": \"Btw-nummer\",\n \"officialLanguageCode\": \"nl\",\n \"officialLanguageNameEn\": \"Dutch, Flemish\",\n \"officialLanguageNameLocal\": \"Nederlands, Vlaams\",\n \"countryCallingCode\": \"31\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇳🇱\"\n },\n {\n \"countryNameEn\": \"United Arab Emirates\",\n \"countryNameLocal\": \"دولة الإمارات العربيّة المتّحدة\",\n \"countryCode\": \"AE\",\n \"currencyCode\": \"AED\",\n \"currencyNameEn\": \"United Arab Emirates dirham\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"971\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇦🇪\"\n },\n {\n \"countryNameEn\": \"Republic of Moldova\",\n \"countryNameLocal\": \"Moldova, Молдавия\",\n \"countryCode\": \"MD\",\n \"currencyCode\": \"MDL\",\n \"currencyNameEn\": \"Moldovan leu\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ro\",\n \"officialLanguageNameEn\": \"Romanian, Moldavian, Moldovan\",\n \"officialLanguageNameLocal\": \"Română\",\n \"countryCallingCode\": \"373\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇲🇩\"\n },\n {\n \"countryNameEn\": \"Gambia\",\n \"countryNameLocal\": \"The Gambia\",\n \"countryCode\": \"GM\",\n \"currencyCode\": \"GMD\",\n \"currencyNameEn\": \"Gambian dalasi\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"220\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇬🇲\"\n },\n {\n \"countryNameEn\": \"Dominican Republic\",\n \"countryNameLocal\": \"República Dominicana\",\n \"countryCode\": \"DO\",\n \"currencyCode\": \"DOP\",\n \"currencyNameEn\": \"Dominican peso\",\n \"tinType\": \"RNC\",\n \"tinName\": \"Registro Nacional del Contribuyente\",\n \"officialLanguageCode\": \"es\",\n \"officialLanguageNameEn\": \"Spanish, Castilian\",\n \"officialLanguageNameLocal\": \"Español\",\n \"countryCallingCode\": \"1\",\n \"areaCodes\": [],\n \"region\": \"South/Latin America\",\n \"flag\": \"🇩🇴\"\n },\n {\n \"countryNameEn\": \"Sudan\",\n \"countryNameLocal\": \"السودان\",\n \"countryCode\": \"SD\",\n \"currencyCode\": \"SDG\",\n \"currencyNameEn\": \"Sudanese pound\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"ar\",\n \"officialLanguageNameEn\": \"Arabic\",\n \"officialLanguageNameLocal\": \"العربية\",\n \"countryCallingCode\": \"249\",\n \"areaCodes\": [],\n \"region\": \"Arab States\",\n \"flag\": \"🇸🇩\"\n },\n {\n \"countryNameEn\": \"Lao People's Democratic Republic\",\n \"countryNameLocal\": \"ປະຊາຊົນລາວ\",\n \"countryCode\": \"LA\",\n \"currencyCode\": \"LAK\",\n \"currencyNameEn\": \"Lao kip\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"lo\",\n \"officialLanguageNameEn\": \"Lao\",\n \"officialLanguageNameLocal\": \"ພາສາລາວ\",\n \"countryCallingCode\": \"856\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇱🇦\"\n },\n {\n \"countryNameEn\": \"Taiwan, Province of China\",\n \"countryNameLocal\": \"Taiwan\",\n \"countryCode\": \"TW\",\n \"currencyCode\": \"TWD\",\n \"currencyNameEn\": \"New Taiwan dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"zh-hant\",\n \"officialLanguageNameEn\": \"\",\n \"officialLanguageNameLocal\": \"\",\n \"countryCallingCode\": \"886\",\n \"areaCodes\": [],\n \"region\": \"Asia & Pacific\",\n \"flag\": \"🇹🇼\"\n },\n {\n \"countryNameEn\": \"Republic of the Congo\",\n \"countryNameLocal\": \"République du Congo\",\n \"countryCode\": \"CG\",\n \"currencyCode\": \"XAF\",\n \"currencyNameEn\": \"CFA franc BEAC\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"242\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇨🇬\"\n },\n {\n \"countryNameEn\": \"Czechia\",\n \"countryNameLocal\": \"Česká republika\",\n \"countryCode\": \"CZ\",\n \"currencyCode\": \"CZK\",\n \"currencyNameEn\": \"Czech koruna\",\n \"tinType\": \"DIČ\",\n \"tinName\": \"Daňové identifikační číslo\",\n \"officialLanguageCode\": \"cs\",\n \"officialLanguageNameEn\": \"Czech\",\n \"officialLanguageNameLocal\": \"Čeština\",\n \"countryCallingCode\": \"420\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇨🇿\"\n },\n {\n \"countryNameEn\": \"United Kingdom\",\n \"countryNameLocal\": \"Great Britain\",\n \"countryCode\": \"GB\",\n \"currencyCode\": \"GBP\",\n \"currencyNameEn\": \"Pound sterling\",\n \"tinType\": \"VAT Reg No\",\n \"tinName\": \"Value added tax registration number\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"44\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇬🇧\"\n },\n {\n \"countryNameEn\": \"Niger\",\n \"countryNameLocal\": \"Niger\",\n \"countryCode\": \"NE\",\n \"currencyCode\": \"XOF\",\n \"currencyNameEn\": \"CFA franc BCEAO\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"227\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇳🇪\"\n },\n {\n \"countryNameEn\": \"Democratic Republic of the Congo\",\n \"countryNameLocal\": \"Democratic Republic of the Congo\",\n \"countryCode\": \"CD\",\n \"currencyCode\": \"CDF\",\n \"currencyNameEn\": \"Congolese franc\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"243\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇨🇩\",\n },\n {\n \"countryNameEn\": \"Commonwealth of The Bahamas\",\n \"countryNameLocal\": \"Commonwealth of The Bahamas\",\n \"countryCode\": \"BS\",\n \"currencyCode\": \"BSD\",\n \"currencyNameEn\": \"Bahamian dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1 242\",\n \"areaCodes\": [],\n \"region\": \"Caribbean\",\n \"flag\": \"🇧🇸\",\n },\n {\n \"countryNameEn\": \"Cocos (Keeling) Islands\",\n \"countryNameLocal\": \"Pulu Kokos (Keeling)\",\n \"countryCode\": \"CC\",\n \"currencyCode\": \"AUD\",\n \"currencyNameEn\": \"Australian dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"61 891\",\n \"areaCodes\": [],\n \"region\": \"Australia\",\n \"flag\": \"🇨🇨\",\n },\n {\n \"countryNameEn\": \"Central African Republic\",\n \"countryNameLocal\": \"République centrafricaine\",\n \"countryCode\": \"CF\",\n \"currencyCode\": \"XAF\",\n \"currencyNameEn\": \"Central African CFA\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"236\",\n \"areaCodes\": [],\n \"region\": \"Africa\",\n \"flag\": \"🇨🇫\",\n },\n {\n \"countryNameEn\": \"Cook Islands\",\n \"countryNameLocal\": \"Kūki 'Āirani\",\n \"countryCode\": \"CK\",\n \"currencyCode\": \"NZD\",\n \"currencyNameEn\": \"New Zealand dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"682\",\n \"areaCodes\": [],\n \"region\": \"South Pacific Ocean\",\n \"flag\": \"🇨🇰\",\n },\n {\n \"countryNameEn\": \"Falkland Islands\",\n \"countryNameLocal\": \"Falkland Islands\",\n \"countryCode\": \"FK\",\n \"currencyCode\": \"FKP\",\n \"currencyNameEn\": \"Falklands pound\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"500\",\n \"areaCodes\": [],\n \"region\": \"South Atlantic Ocean\",\n \"flag\": \"🇫🇰\",\n },\n {\n \"countryNameEn\": \"Faroe Islands\",\n \"countryNameLocal\": \"Færøerne\",\n \"countryCode\": \"FO\",\n \"currencyCode\": \"DKK\",\n \"currencyNameEn\": \"Faroese króna\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"da\",\n \"officialLanguageNameEn\": \"Danish\",\n \"officialLanguageNameLocal\": \"dansk\",\n \"countryCallingCode\": \"298\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇫🇴\",\n },\n {\n \"countryNameEn\": \"Territory of Heard Island and McDonald Islands\",\n \"countryNameLocal\": \"Territory of Heard Island and McDonald Islands\",\n \"countryCode\": \"HM\",\n \"currencyCode\": \"AUD\",\n \"currencyNameEn\": \"Australian dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"672\",\n \"areaCodes\": [],\n \"region\": \"Indian Ocean\",\n \"flag\": \"🇭🇲\",\n },\n {\n \"countryNameEn\": \"British Indian Ocean Territory\",\n \"countryNameLocal\": \"British Indian Ocean Territory\",\n \"countryCode\": \"IO\",\n \"currencyCode\": \"USD\",\n \"currencyNameEn\": \"United States Dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"246\",\n \"areaCodes\": [],\n \"region\": \"Indian Ocean\",\n \"flag\": \"🇮🇴\",\n },\n {\n \"countryNameEn\": \"Comoros\",\n \"countryNameLocal\": \"Umoja wa Komori\",\n \"countryCode\": \"KM\",\n \"currencyCode\": \"KMF\",\n \"currencyNameEn\": \"Comorian franc\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"269\",\n \"areaCodes\": [],\n \"region\": \"Indian Ocean\",\n \"flag\": \"🇰🇲\",\n },\n {\n \"countryNameEn\": \"Cayman Islands\",\n \"countryNameLocal\": \"Cayman Islands\",\n \"countryCode\": \"KY\",\n \"currencyCode\": \"KYD\",\n \"currencyNameEn\": \"Cayman Islands dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1 345\",\n \"areaCodes\": [],\n \"region\": \"Caribbean Sea\",\n \"flag\": \"🇰🇾\",\n },\n {\n \"countryNameEn\": \"Republic of the Marshall Islands\",\n \"countryNameLocal\": \"Aolepān Aorōkin Ṃajeḷ\",\n \"countryCode\": \"MH\",\n \"currencyCode\": \"USD\",\n \"currencyNameEn\": \"United States dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"692\",\n \"areaCodes\": [],\n \"region\": \"Pacific Ocean\",\n \"flag\": \"🇲🇭\",\n },\n {\n \"countryNameEn\": \"Commonwealth of the Northern Mariana Islands\",\n \"countryNameLocal\": \"Sankattan Siha Na Islas Mariånas\",\n \"countryCode\": \"MP\",\n \"currencyCode\": \"USD\",\n \"currencyNameEn\": \"United States dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1 670\",\n \"areaCodes\": [],\n \"region\": \"Pacific Ocean\",\n \"flag\": \"🇲🇵\",\n },\n {\n \"countryNameEn\": \"Turks and Caicos Islands\",\n \"countryNameLocal\": \"Turks and Caicos Islands\",\n \"countryCode\": \"TC\",\n \"currencyCode\": \"USD\",\n \"currencyNameEn\": \"United States dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1 649\",\n \"areaCodes\": [],\n \"region\": \"Atlantic Ocean\",\n \"flag\": \"🇹🇨\",\n },\n {\n \"countryNameEn\": \"French Southern and Antarctic Lands\",\n \"countryNameLocal\": \"Terres australes et antarctiques françaises\",\n \"countryCode\": \"TF\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"fr\",\n \"officialLanguageNameEn\": \"French\",\n \"officialLanguageNameLocal\": \"Français\",\n \"countryCallingCode\": \"672\",\n \"areaCodes\": [],\n \"region\": \"Indian Ocean\",\n \"flag\": \"🇹🇫\",\n },\n {\n \"countryNameEn\": \"United States Minor Outlying Islands\",\n \"countryNameLocal\": \"United States Minor Outlying Islands\",\n \"countryCode\": \"UM\",\n \"currencyCode\": \"USD\",\n \"currencyNameEn\": \"United States dollar\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"en\",\n \"officialLanguageNameEn\": \"English\",\n \"officialLanguageNameLocal\": \"English\",\n \"countryCallingCode\": \"1\",\n \"areaCodes\": [],\n \"region\": \"Pacific Ocean\",\n \"flag\": \"🇺🇲\",\n },\n {\n \"countryNameEn\": \"Holy See\",\n \"countryNameLocal\": \"Sancta Sedes\",\n \"countryCode\": \"VA\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"la\",\n \"officialLanguageNameEn\": \"Latin\",\n \"officialLanguageNameLocal\": \"lingua latīna\",\n \"countryCallingCode\": \"39\",\n \"areaCodes\": [],\n \"region\": \"Europe\",\n \"flag\": \"🇻🇦\",\n },\n {\n \"countryNameEn\": \"Republic of Kosovo\",\n \"countryNameLocal\": \"Republika e Kosovës\",\n \"countryCode\": \"XK\",\n \"currencyCode\": \"EUR\",\n \"currencyNameEn\": \"Euro\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"sq\",\n \"officialLanguageNameEn\": \"Albanian\",\n \"officialLanguageNameLocal\": \"Shqip\",\n \"countryCallingCode\": \"383\",\n \"region\": \"Europe\",\n \"flag\": \"🇽🇰\",\n },\n {\n \"countryNameEn\": \"Netherlands Antilles\",\n \"countryNameLocal\": \"Nederlandse Antillen\",\n \"countryCode\": \"AN\",\n \"currencyCode\": \"ANG\",\n \"currencyNameEn\": \"Netherlands Antillean guilder\",\n \"tinType\": \"\",\n \"tinName\": \"\",\n \"officialLanguageCode\": \"nl\",\n \"officialLanguageNameEn\": \"Dutch, Flemish\",\n \"officialLanguageNameLocal\": \"Nederlands, Vlaams\",\n \"countryCallingCode\": \"599\",\n \"region\": \"Europe\",\n \"flag\": \"🇧🇶\",\n },\n]\n","const groupBy = require('./utils/groupBy')\nconst supplant = require('./utils/supplant')\nconst countriesData = require('./countriesData')\n\nmodule.exports = { \n /**\n * Returns some module utils\n */\n utils: {\n groupBy: groupBy\n },\n\n /**\n * Returns the list with all the countries data\n */\n all: function () {\n return countriesData\n },\n /**\n * Filters the list of countries and returns those matching with the filter criteria\n * @param {String} countryProperty - The property to use in the filter. Must be any of the country properties (countryCode, currencyCode, etc)\n * @param {String} value - The value to use in the filter\n */\n filter: function (countryProperty, value) {\n return countriesData.filter(countryData => countryData[countryProperty] === value)\n },\n /**\n * Find a country by a property and return the first match\n * @param {String} countryProperty - The property to use in the search. Must be any of the country properties (countryCode, currencyCode, etc)\n * @param {String} value - The value to use in the filter\n */\n findOne: function (countryProperty, value) {\n return countriesData.find(countryData => countryData[countryProperty] === value)\n },\n /**\n * Returns a collection with fields mapped as requested\n * @param {*} fields - Map of fields and placeholders \n */\n customArray: function (fields = { name: '{countryNameEn} ({countryCode})', value: '{countryCode}'}, { sortBy, sortDataBy, filter } = {}) {\n const finalCollection = []\n\n let data = countriesData\n if (typeof filter === 'function') {\n data = data.filter(filter)\n }\n\n if (sortDataBy) {\n // ignore upper and lowercase\n const collator = new Intl.Collator([], { sensitivity:'accent' })\n data.sort((a, b) => collator.compare(a[sortDataBy], b[sortDataBy]))\n }\n\n data.forEach(countryData => {\n let collectionObject = {}\n for (const field in fields) {\n collectionObject[field] = supplant(fields[field], countryData)\n }\n finalCollection.push(collectionObject)\n })\n\n if (sortBy && fields[sortBy]) {\n // ignore upper and lowercase\n const collator = new Intl.Collator([], {sensitivity:'accent'})\n finalCollection.sort((a, b) => collator.compare(a[sortBy], b[sortBy]))\n }\n\n return finalCollection\n },\n /**\n * Returns a custom object with the passed key as object key and a value made up with\n * values set in the placeholders of the label variable\n * @param {*} key - Key used to construct the object to return\n * @param {*} label - Placeholder like string, with all the fields that you want to use\n */\n customList: function (key = 'countryCode', label = '{countryNameEn} ({countryCode})', { filter } = {}) {\n const finalObject = {}\n let data = countriesData\n if (typeof filter === 'function') {\n data = data.filter(filter)\n }\n data.forEach(countryData => {\n const value = supplant(label, countryData)\n finalObject[countryData[key]] = value\n })\n\n return finalObject\n }\n}\n","'use strict'\n\n/**\n * groupBy() groups an array by the given key. A transformation may be passed to be applied when each value is concatenated\n * to the grouped component.\n * @param {string} key - The key to use to group the array\n * @param {array} array - The array to group\n * @param {function} transform - A transformation to apply to the grouped value\n */\nmodule.exports = function groupBy (key, array, transform) { \n return array.reduce((objectsByKeyValue, obj) => {\n const value = obj[key];\n let val = obj\n if (typeof transform === 'function') {\n val = transform(val)\n }\n objectsByKeyValue[value] = (objectsByKeyValue[value] || []).concat(val);\n return objectsByKeyValue;\n }, {})\n};","'use strict'\n\n/**\n * supplant() does variable substitution on the string. It scans through the string looking for\n * expressions enclosed in { } braces. If an expression is found, use it as a key on the object,\n * and if the key has a string value or number value, it is substituted for the bracket expression\n * and it repeats.\n * @param {string} stringVal - The string that needs supplanting\n * @param {object} replacements - key/value object with the keys to be replaced by the corresponding values\n */\nmodule.exports = function (stringVal, replacements) {\n return stringVal.replace(/{([^{}]*)}/g, function (a, b) {\n let r = replacements[b]\n return typeof r === 'string' || typeof r === 'number' ? r : a\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 * 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\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\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';\n\n var script = '\\n (function(w,d,s,l,i){w[l]=w[l]||[];\\n w[l].push({\\'gtm.start\\': new Date().getTime(),event:\\'gtm.js\\', ' + JSON.stringify(events).slice(1, -1) + '});\\n var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!=\\'dataLayer\\'?\\'&l=\\'+l:\\'\\';\\n j.async=true;j.src=\\'https://www.googletagmanager.com/gtm.js?id=\\'+i+dl+\\'' + gtm_auth + gtm_preview + '>m_cookies_win=x\\';\\n f.parentNode.insertBefore(j,f);\\n })(window,document,\\'script\\',\\'' + dataLayerName + '\\',\\'' + id + '\\');';\n\n var dataLayerVar = this.dataLayer(dataLayer, dataLayerName);\n\n return {\n iframe: iframe,\n script: script,\n dataLayerVar: dataLayerVar\n };\n },\n dataLayer: function dataLayer(_dataLayer, dataLayerName) {\n return '\\n window.' + dataLayerName + ' = window.' + dataLayerName + ' || [];\\n window.' + dataLayerName + '.push(' + JSON.stringify(_dataLayer) + ')';\n }\n};\n\nmodule.exports = Snippets;","'use strict';\n\nvar _Snippets = require('./Snippets');\n\nvar _Snippets2 = _interopRequireDefault(_Snippets);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar TagManager = {\n dataScript: function dataScript(dataLayer) {\n var script = document.createElement('script');\n script.innerHTML = dataLayer;\n return script;\n },\n gtm: function gtm(args) {\n var snippets = _Snippets2.default.tags(args);\n\n var noScript = function noScript() {\n var noscript = document.createElement('noscript');\n noscript.innerHTML = snippets.iframe;\n return noscript;\n };\n\n var script = function script() {\n var script = document.createElement('script');\n script.innerHTML = snippets.script;\n return script;\n };\n\n var dataScript = this.dataScript(snippets.dataLayerVar);\n\n return {\n noScript: noScript,\n script: script,\n dataScript: dataScript\n };\n },\n initialize: function initialize(_ref) {\n var gtmId = _ref.gtmId,\n _ref$events = _ref.events,\n events = _ref$events === undefined ? {} : _ref$events,\n dataLayer = _ref.dataLayer,\n _ref$dataLayerName = _ref.dataLayerName,\n dataLayerName = _ref$dataLayerName === undefined ? 'dataLayer' : _ref$dataLayerName,\n _ref$auth = _ref.auth,\n auth = _ref$auth === undefined ? '' : _ref$auth,\n _ref$preview = _ref.preview,\n preview = _ref$preview === undefined ? '' : _ref$preview;\n\n var gtm = this.gtm({\n id: gtmId,\n events: events,\n dataLayer: dataLayer || undefined,\n dataLayerName: dataLayerName,\n auth: auth,\n preview: preview\n });\n if (dataLayer) document.head.appendChild(gtm.dataScript);\n document.head.insertBefore(gtm.script(), document.head.childNodes[0]);\n document.body.insertBefore(gtm.noScript(), document.body.childNodes[0]);\n },\n dataLayer: function dataLayer(_ref2) {\n var _dataLayer = _ref2.dataLayer,\n _ref2$dataLayerName = _ref2.dataLayerName,\n dataLayerName = _ref2$dataLayerName === undefined ? 'dataLayer' : _ref2$dataLayerName;\n\n if (window[dataLayerName]) return window[dataLayerName].push(_dataLayer);\n var snippets = _Snippets2.default.dataLayer(_dataLayer, dataLayerName);\n var dataScript = this.dataScript(snippets);\n document.head.insertBefore(dataScript, document.head.childNodes[0]);\n }\n};\n\nmodule.exports = TagManager;","'use strict';\n\nvar _TagManager = require('./TagManager');\n\nvar _TagManager2 = _interopRequireDefault(_TagManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = _TagManager2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar warn = function warn(s) {\n console.warn('[react-gtm]', s);\n};\n\nexports.default = warn;","\"use strict\";function _interopDefault(e){return e&&\"object\"==typeof e&&\"default\"in e?e.default:e}Object.defineProperty(exports,\"__esModule\",{value:!0});var React=require(\"react\"),React__default=_interopDefault(React),extendStatics=function(e,a){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,a){e.__proto__=a}||function(e,a){for(var i in a)a.hasOwnProperty(i)&&(e[i]=a[i])})(e,a)};function __extends(e,a){function i(){this.constructor=e}extendStatics(e,a),e.prototype=null===a?Object.create(a):(i.prototype=a.prototype,new i)}var frequency_lists,adjacency_graphs,BRUTEFORCE_CARDINALITY,MIN_GUESSES_BEFORE_GROWING_SEQUENCE,MIN_SUBMATCH_GUESSES_MULTI_CHAR,MIN_SUBMATCH_GUESSES_SINGLE_CHAR,adjacency_graphs$1,calc_average_degree,k,scoring,v,__assign=function(){return(__assign=Object.assign||function(e){for(var a,i=1,r=arguments.length;i\",null,null],\"-\":[\"0)\",null,null,\"=+\",\"[{\",\"pP\"],\".\":[\",<\",\"lL\",\";:\",\"/?\",null,null],\"/\":[\".>\",\";:\",\"'\\\"\",null,null,null],0:[\"9(\",null,null,\"-_\",\"pP\",\"oO\"],1:[\"`~\",null,null,\"2@\",\"qQ\",null],2:[\"1!\",null,null,\"3#\",\"wW\",\"qQ\"],3:[\"2@\",null,null,\"4$\",\"eE\",\"wW\"],4:[\"3#\",null,null,\"5%\",\"rR\",\"eE\"],5:[\"4$\",null,null,\"6^\",\"tT\",\"rR\"],6:[\"5%\",null,null,\"7&\",\"yY\",\"tT\"],7:[\"6^\",null,null,\"8*\",\"uU\",\"yY\"],8:[\"7&\",null,null,\"9(\",\"iI\",\"uU\"],9:[\"8*\",null,null,\"0)\",\"oO\",\"iI\"],\":\":[\"lL\",\"pP\",\"[{\",\"'\\\"\",\"/?\",\".>\"],\";\":[\"lL\",\"pP\",\"[{\",\"'\\\"\",\"/?\",\".>\"],\"<\":[\"mM\",\"kK\",\"lL\",\".>\",null,null],\"=\":[\"-_\",null,null,null,\"]}\",\"[{\"],\">\":[\",<\",\"lL\",\";:\",\"/?\",null,null],\"?\":[\".>\",\";:\",\"'\\\"\",null,null,null],\"@\":[\"1!\",null,null,\"3#\",\"wW\",\"qQ\"],A:[null,\"qQ\",\"wW\",\"sS\",\"zZ\",null],B:[\"vV\",\"gG\",\"hH\",\"nN\",null,null],C:[\"xX\",\"dD\",\"fF\",\"vV\",null,null],D:[\"sS\",\"eE\",\"rR\",\"fF\",\"cC\",\"xX\"],E:[\"wW\",\"3#\",\"4$\",\"rR\",\"dD\",\"sS\"],F:[\"dD\",\"rR\",\"tT\",\"gG\",\"vV\",\"cC\"],G:[\"fF\",\"tT\",\"yY\",\"hH\",\"bB\",\"vV\"],H:[\"gG\",\"yY\",\"uU\",\"jJ\",\"nN\",\"bB\"],I:[\"uU\",\"8*\",\"9(\",\"oO\",\"kK\",\"jJ\"],J:[\"hH\",\"uU\",\"iI\",\"kK\",\"mM\",\"nN\"],K:[\"jJ\",\"iI\",\"oO\",\"lL\",\",<\",\"mM\"],L:[\"kK\",\"oO\",\"pP\",\";:\",\".>\",\",<\"],M:[\"nN\",\"jJ\",\"kK\",\",<\",null,null],N:[\"bB\",\"hH\",\"jJ\",\"mM\",null,null],O:[\"iI\",\"9(\",\"0)\",\"pP\",\"lL\",\"kK\"],P:[\"oO\",\"0)\",\"-_\",\"[{\",\";:\",\"lL\"],Q:[null,\"1!\",\"2@\",\"wW\",\"aA\",null],R:[\"eE\",\"4$\",\"5%\",\"tT\",\"fF\",\"dD\"],S:[\"aA\",\"wW\",\"eE\",\"dD\",\"xX\",\"zZ\"],T:[\"rR\",\"5%\",\"6^\",\"yY\",\"gG\",\"fF\"],U:[\"yY\",\"7&\",\"8*\",\"iI\",\"jJ\",\"hH\"],V:[\"cC\",\"fF\",\"gG\",\"bB\",null,null],W:[\"qQ\",\"2@\",\"3#\",\"eE\",\"sS\",\"aA\"],X:[\"zZ\",\"sS\",\"dD\",\"cC\",null,null],Y:[\"tT\",\"6^\",\"7&\",\"uU\",\"hH\",\"gG\"],Z:[null,\"aA\",\"sS\",\"xX\",null,null],\"[\":[\"pP\",\"-_\",\"=+\",\"]}\",\"'\\\"\",\";:\"],\"\\\\\":[\"]}\",null,null,null,null,null],\"]\":[\"[{\",\"=+\",null,\"\\\\|\",null,\"'\\\"\"],\"^\":[\"5%\",null,null,\"7&\",\"yY\",\"tT\"],_:[\"0)\",null,null,\"=+\",\"[{\",\"pP\"],\"`\":[null,null,null,\"1!\",null,null],a:[null,\"qQ\",\"wW\",\"sS\",\"zZ\",null],b:[\"vV\",\"gG\",\"hH\",\"nN\",null,null],c:[\"xX\",\"dD\",\"fF\",\"vV\",null,null],d:[\"sS\",\"eE\",\"rR\",\"fF\",\"cC\",\"xX\"],e:[\"wW\",\"3#\",\"4$\",\"rR\",\"dD\",\"sS\"],f:[\"dD\",\"rR\",\"tT\",\"gG\",\"vV\",\"cC\"],g:[\"fF\",\"tT\",\"yY\",\"hH\",\"bB\",\"vV\"],h:[\"gG\",\"yY\",\"uU\",\"jJ\",\"nN\",\"bB\"],i:[\"uU\",\"8*\",\"9(\",\"oO\",\"kK\",\"jJ\"],j:[\"hH\",\"uU\",\"iI\",\"kK\",\"mM\",\"nN\"],k:[\"jJ\",\"iI\",\"oO\",\"lL\",\",<\",\"mM\"],l:[\"kK\",\"oO\",\"pP\",\";:\",\".>\",\",<\"],m:[\"nN\",\"jJ\",\"kK\",\",<\",null,null],n:[\"bB\",\"hH\",\"jJ\",\"mM\",null,null],o:[\"iI\",\"9(\",\"0)\",\"pP\",\"lL\",\"kK\"],p:[\"oO\",\"0)\",\"-_\",\"[{\",\";:\",\"lL\"],q:[null,\"1!\",\"2@\",\"wW\",\"aA\",null],r:[\"eE\",\"4$\",\"5%\",\"tT\",\"fF\",\"dD\"],s:[\"aA\",\"wW\",\"eE\",\"dD\",\"xX\",\"zZ\"],t:[\"rR\",\"5%\",\"6^\",\"yY\",\"gG\",\"fF\"],u:[\"yY\",\"7&\",\"8*\",\"iI\",\"jJ\",\"hH\"],v:[\"cC\",\"fF\",\"gG\",\"bB\",null,null],w:[\"qQ\",\"2@\",\"3#\",\"eE\",\"sS\",\"aA\"],x:[\"zZ\",\"sS\",\"dD\",\"cC\",null,null],y:[\"tT\",\"6^\",\"7&\",\"uU\",\"hH\",\"gG\"],z:[null,\"aA\",\"sS\",\"xX\",null,null],\"{\":[\"pP\",\"-_\",\"=+\",\"]}\",\"'\\\"\",\";:\"],\"|\":[\"]}\",null,null,null,null,null],\"}\":[\"[{\",\"=+\",null,\"\\\\|\",null,\"'\\\"\"],\"~\":[null,null,null,\"1!\",null,null]},dvorak:{\"!\":[\"`~\",null,null,\"2@\",\"'\\\"\",null],'\"':[null,\"1!\",\"2@\",\",<\",\"aA\",null],\"#\":[\"2@\",null,null,\"4$\",\".>\",\",<\"],$:[\"3#\",null,null,\"5%\",\"pP\",\".>\"],\"%\":[\"4$\",null,null,\"6^\",\"yY\",\"pP\"],\"&\":[\"6^\",null,null,\"8*\",\"gG\",\"fF\"],\"'\":[null,\"1!\",\"2@\",\",<\",\"aA\",null],\"(\":[\"8*\",null,null,\"0)\",\"rR\",\"cC\"],\")\":[\"9(\",null,null,\"[{\",\"lL\",\"rR\"],\"*\":[\"7&\",null,null,\"9(\",\"cC\",\"gG\"],\"+\":[\"/?\",\"]}\",null,\"\\\\|\",null,\"-_\"],\",\":[\"'\\\"\",\"2@\",\"3#\",\".>\",\"oO\",\"aA\"],\"-\":[\"sS\",\"/?\",\"=+\",null,null,\"zZ\"],\".\":[\",<\",\"3#\",\"4$\",\"pP\",\"eE\",\"oO\"],\"/\":[\"lL\",\"[{\",\"]}\",\"=+\",\"-_\",\"sS\"],0:[\"9(\",null,null,\"[{\",\"lL\",\"rR\"],1:[\"`~\",null,null,\"2@\",\"'\\\"\",null],2:[\"1!\",null,null,\"3#\",\",<\",\"'\\\"\"],3:[\"2@\",null,null,\"4$\",\".>\",\",<\"],4:[\"3#\",null,null,\"5%\",\"pP\",\".>\"],5:[\"4$\",null,null,\"6^\",\"yY\",\"pP\"],6:[\"5%\",null,null,\"7&\",\"fF\",\"yY\"],7:[\"6^\",null,null,\"8*\",\"gG\",\"fF\"],8:[\"7&\",null,null,\"9(\",\"cC\",\"gG\"],9:[\"8*\",null,null,\"0)\",\"rR\",\"cC\"],\":\":[null,\"aA\",\"oO\",\"qQ\",null,null],\";\":[null,\"aA\",\"oO\",\"qQ\",null,null],\"<\":[\"'\\\"\",\"2@\",\"3#\",\".>\",\"oO\",\"aA\"],\"=\":[\"/?\",\"]}\",null,\"\\\\|\",null,\"-_\"],\">\":[\",<\",\"3#\",\"4$\",\"pP\",\"eE\",\"oO\"],\"?\":[\"lL\",\"[{\",\"]}\",\"=+\",\"-_\",\"sS\"],\"@\":[\"1!\",null,null,\"3#\",\",<\",\"'\\\"\"],A:[null,\"'\\\"\",\",<\",\"oO\",\";:\",null],B:[\"xX\",\"dD\",\"hH\",\"mM\",null,null],C:[\"gG\",\"8*\",\"9(\",\"rR\",\"tT\",\"hH\"],D:[\"iI\",\"fF\",\"gG\",\"hH\",\"bB\",\"xX\"],E:[\"oO\",\".>\",\"pP\",\"uU\",\"jJ\",\"qQ\"],F:[\"yY\",\"6^\",\"7&\",\"gG\",\"dD\",\"iI\"],G:[\"fF\",\"7&\",\"8*\",\"cC\",\"hH\",\"dD\"],H:[\"dD\",\"gG\",\"cC\",\"tT\",\"mM\",\"bB\"],I:[\"uU\",\"yY\",\"fF\",\"dD\",\"xX\",\"kK\"],J:[\"qQ\",\"eE\",\"uU\",\"kK\",null,null],K:[\"jJ\",\"uU\",\"iI\",\"xX\",null,null],L:[\"rR\",\"0)\",\"[{\",\"/?\",\"sS\",\"nN\"],M:[\"bB\",\"hH\",\"tT\",\"wW\",null,null],N:[\"tT\",\"rR\",\"lL\",\"sS\",\"vV\",\"wW\"],O:[\"aA\",\",<\",\".>\",\"eE\",\"qQ\",\";:\"],P:[\".>\",\"4$\",\"5%\",\"yY\",\"uU\",\"eE\"],Q:[\";:\",\"oO\",\"eE\",\"jJ\",null,null],R:[\"cC\",\"9(\",\"0)\",\"lL\",\"nN\",\"tT\"],S:[\"nN\",\"lL\",\"/?\",\"-_\",\"zZ\",\"vV\"],T:[\"hH\",\"cC\",\"rR\",\"nN\",\"wW\",\"mM\"],U:[\"eE\",\"pP\",\"yY\",\"iI\",\"kK\",\"jJ\"],V:[\"wW\",\"nN\",\"sS\",\"zZ\",null,null],W:[\"mM\",\"tT\",\"nN\",\"vV\",null,null],X:[\"kK\",\"iI\",\"dD\",\"bB\",null,null],Y:[\"pP\",\"5%\",\"6^\",\"fF\",\"iI\",\"uU\"],Z:[\"vV\",\"sS\",\"-_\",null,null,null],\"[\":[\"0)\",null,null,\"]}\",\"/?\",\"lL\"],\"\\\\\":[\"=+\",null,null,null,null,null],\"]\":[\"[{\",null,null,null,\"=+\",\"/?\"],\"^\":[\"5%\",null,null,\"7&\",\"fF\",\"yY\"],_:[\"sS\",\"/?\",\"=+\",null,null,\"zZ\"],\"`\":[null,null,null,\"1!\",null,null],a:[null,\"'\\\"\",\",<\",\"oO\",\";:\",null],b:[\"xX\",\"dD\",\"hH\",\"mM\",null,null],c:[\"gG\",\"8*\",\"9(\",\"rR\",\"tT\",\"hH\"],d:[\"iI\",\"fF\",\"gG\",\"hH\",\"bB\",\"xX\"],e:[\"oO\",\".>\",\"pP\",\"uU\",\"jJ\",\"qQ\"],f:[\"yY\",\"6^\",\"7&\",\"gG\",\"dD\",\"iI\"],g:[\"fF\",\"7&\",\"8*\",\"cC\",\"hH\",\"dD\"],h:[\"dD\",\"gG\",\"cC\",\"tT\",\"mM\",\"bB\"],i:[\"uU\",\"yY\",\"fF\",\"dD\",\"xX\",\"kK\"],j:[\"qQ\",\"eE\",\"uU\",\"kK\",null,null],k:[\"jJ\",\"uU\",\"iI\",\"xX\",null,null],l:[\"rR\",\"0)\",\"[{\",\"/?\",\"sS\",\"nN\"],m:[\"bB\",\"hH\",\"tT\",\"wW\",null,null],n:[\"tT\",\"rR\",\"lL\",\"sS\",\"vV\",\"wW\"],o:[\"aA\",\",<\",\".>\",\"eE\",\"qQ\",\";:\"],p:[\".>\",\"4$\",\"5%\",\"yY\",\"uU\",\"eE\"],q:[\";:\",\"oO\",\"eE\",\"jJ\",null,null],r:[\"cC\",\"9(\",\"0)\",\"lL\",\"nN\",\"tT\"],s:[\"nN\",\"lL\",\"/?\",\"-_\",\"zZ\",\"vV\"],t:[\"hH\",\"cC\",\"rR\",\"nN\",\"wW\",\"mM\"],u:[\"eE\",\"pP\",\"yY\",\"iI\",\"kK\",\"jJ\"],v:[\"wW\",\"nN\",\"sS\",\"zZ\",null,null],w:[\"mM\",\"tT\",\"nN\",\"vV\",null,null],x:[\"kK\",\"iI\",\"dD\",\"bB\",null,null],y:[\"pP\",\"5%\",\"6^\",\"fF\",\"iI\",\"uU\"],z:[\"vV\",\"sS\",\"-_\",null,null,null],\"{\":[\"0)\",null,null,\"]}\",\"/?\",\"lL\"],\"|\":[\"=+\",null,null,null,null,null],\"}\":[\"[{\",null,null,null,\"=+\",\"/?\"],\"~\":[null,null,null,\"1!\",null,null]},keypad:{\"*\":[\"/\",null,null,null,\"-\",\"+\",\"9\",\"8\"],\"+\":[\"9\",\"*\",\"-\",null,null,null,null,\"6\"],\"-\":[\"*\",null,null,null,null,null,\"+\",\"9\"],\".\":[\"0\",\"2\",\"3\",null,null,null,null,null],\"/\":[null,null,null,null,\"*\",\"9\",\"8\",\"7\"],0:[null,\"1\",\"2\",\"3\",\".\",null,null,null],1:[null,null,\"4\",\"5\",\"2\",\"0\",null,null],2:[\"1\",\"4\",\"5\",\"6\",\"3\",\".\",\"0\",null],3:[\"2\",\"5\",\"6\",null,null,null,\".\",\"0\"],4:[null,null,\"7\",\"8\",\"5\",\"2\",\"1\",null],5:[\"4\",\"7\",\"8\",\"9\",\"6\",\"3\",\"2\",\"1\"],6:[\"5\",\"8\",\"9\",\"+\",null,null,\"3\",\"2\"],7:[null,null,null,\"/\",\"8\",\"5\",\"4\",null],8:[\"7\",null,\"/\",\"*\",\"9\",\"6\",\"5\",\"4\"],9:[\"8\",\"/\",\"*\",\"-\",\"+\",null,\"6\",\"5\"]},mac_keypad:{\"*\":[\"/\",null,null,null,null,null,\"-\",\"9\"],\"+\":[\"6\",\"9\",\"-\",null,null,null,null,\"3\"],\"-\":[\"9\",\"/\",\"*\",null,null,null,\"+\",\"6\"],\".\":[\"0\",\"2\",\"3\",null,null,null,null,null],\"/\":[\"=\",null,null,null,\"*\",\"-\",\"9\",\"8\"],0:[null,\"1\",\"2\",\"3\",\".\",null,null,null],1:[null,null,\"4\",\"5\",\"2\",\"0\",null,null],2:[\"1\",\"4\",\"5\",\"6\",\"3\",\".\",\"0\",null],3:[\"2\",\"5\",\"6\",\"+\",null,null,\".\",\"0\"],4:[null,null,\"7\",\"8\",\"5\",\"2\",\"1\",null],5:[\"4\",\"7\",\"8\",\"9\",\"6\",\"3\",\"2\",\"1\"],6:[\"5\",\"8\",\"9\",\"-\",\"+\",null,\"3\",\"2\"],7:[null,null,null,\"=\",\"8\",\"5\",\"4\",null],8:[\"7\",null,\"=\",\"/\",\"9\",\"6\",\"5\",\"4\"],9:[\"8\",\"=\",\"/\",\"*\",\"-\",\"+\",\"6\",\"5\"],\"=\":[null,null,null,null,\"/\",\"9\",\"8\",\"7\"]}};adjacency_graphs$1=adjacency_graphs_1,calc_average_degree=function(a){var e,i,r,n,s;for(r in e=0,a)s=a[r],e+=function(){var e,a,i;for(i=[],a=0,e=s.length;a \"+k);return e}().join(\", \"),c.push(t)}return this.sorted(c.filter(function(e){return 1?]/,spatial_match_helper:function(e,a,i){var r,n,s,o,t,l,c,d,m,u,h,g,p,b;for(h=[],c=0;cu[0].length?(h=o,m.exec(h[0])[1]):(h=u)[1],t=(p=[h.index,h.index+h[0].length-1])[0],l=p[1],r=(a=scoring$1.most_guessable_match_sequence(n,this.omnimatch(n))).sequence,i=a.guesses,g.push({pattern:\"repeat\",i:t,j:l,token:h[0],base_token:n,base_guesses:i,base_matches:r,repeat_count:h[0].length/n.length}),c=l+1;return g},MAX_DELTA:5,sequence_match:function(t){var e,a,i,r,n,s,o,l,c,d;if(1===t.length)return[];for(d=this,c=function(e,a,i){var r,n,s,o;if((1=e.length);t=z<=j?++k:--k)if(C=e.slice(o,+t+1||9e9),h.exec(C)){for(r=[],f=0,d=(x=DATE_SPLITS[C.length]).length;f=e.length);t=S<=R?++N:--N)C=e.slice(o,+t+1||9e9),null!=(I=g.exec(C))&&null!=(s=this.map_ints_to_dmy([parseInt(I[1]),parseInt(I[3]),parseInt(I[4])]))&&u.push({pattern:\"date\",token:C,i:o,j:t,separator:I[2],year:s.year,month:s.month,day:s.day});return this.sorted(u.filter(function(e){var a,i,r,n;for(a=!1,n=0,i=u.length;n=e.j){a=!0;break}return!a}))},map_ints_to_dmy:function(e){var a,i,r,n,s,o,t,l,c,d,m,u,h,g,p,b;if(!(31s.token.length&&(s=o);return i=\"Add another word or two. Uncommon words are better.\",null!=(feedback=this.get_match_feedback(s,1===a.length))?(feedback.suggestions.unshift(i),null==feedback.warning&&(feedback.warning=\"\")):feedback={warning:\"\",suggestions:[i]},feedback},get_match_feedback:function(e,a){switch(e.pattern){case\"dictionary\":return this.get_dictionary_match_feedback(e,a);case\"spatial\":return e.graph.toUpperCase(),{warning:1===e.turns?\"Straight rows of keys are easy to guess\":\"Short keyboard patterns are easy to guess\",suggestions:[\"Use a longer keyboard pattern with more turns\"]};case\"repeat\":return{warning:1===e.base_token.length?'Repeats like \"aaa\" are easy to guess':'Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"',suggestions:[\"Avoid repeated words and characters\"]};case\"sequence\":return{warning:\"Sequences like abc or 6543 are easy to guess\",suggestions:[\"Avoid sequences\"]};case\"regex\":if(\"recent_year\"===e.regex_name)return{warning:\"Recent years are easy to guess\",suggestions:[\"Avoid recent years\",\"Avoid years that are associated with you\"]};break;case\"date\":return{warning:\"Dates are often easy to guess\",suggestions:[\"Avoid dates and years that are associated with you\"]}}},get_dictionary_match_feedback:function(e,a){var i,r,n,s;return n=\"passwords\"===e.dictionary_name?!a||e.l33t||e.reversed?e.guesses_log10<=4?\"This is similar to a commonly used password\":void 0:e.rank<=10?\"This is a top-10 common password\":e.rank<=100?\"This is a top-100 common password\":\"This is a very common password\":\"english_wikipedia\"===e.dictionary_name?a?\"A word by itself is easy to guess\":void 0:\"surnames\"===(i=e.dictionary_name)||\"male_names\"===i||\"female_names\"===i?a?\"Names and surnames by themselves are easy to guess\":\"Common names and surnames are easy to guess\":\"\",r=[],(s=e.token).match(scoring$2.START_UPPER)?r.push(\"Capitalization doesn't help very much\"):s.match(scoring$2.ALL_UPPER)&&s.toLowerCase()!==s&&r.push(\"All-uppercase is almost as easy to guess as all-lowercase\"),e.reversed&&4<=e.token.length&&r.push(\"Reversed words aren't much harder to guess\"),e.l33t&&r.push(\"Predictable substitutions like '@' instead of 'a' don't help very much\"),{warning:n,suggestions:r}}};matching$1=matching_1,scoring$3=scoring$2=scoring_1,time_estimates$1=time_estimates_1,feedback$1=feedback_1,time=function(){return(new Date).getTime()};var main=zxcvbn=function(e,a){var i,r,n,s,o,t,l,c,d,m,u;for(null==a&&(a=[]),m=time(),d=[],n=0,s=a.length;n=i&&(s=main(a,r),o=s.score,t=s.feedback),l.setState({score:o},function(){n&&n(o,t)})},l}return __extends(a,e),a.prototype.componentDidMount=function(){this.setScore()},a.prototype.componentDidUpdate=function(e){var a=this.props.password;e.password!==a&&this.setScore()},a.prototype.render=function(){var e=this.props,a=e.className,i=e.style,r=e.scoreWordClassName,n=e.scoreWordStyle,s=e.password,o=e.barColors,t=e.scoreWords,l=e.minLength,c=e.shortScoreWord,d=this.state.score,m=s.length>=l?t[d]:c;return React__default.createElement(\"div\",{className:a,style:__assign(__assign({},rootStyle),i)},React__default.createElement(\"div\",{style:wrapStyle},[1,2,3,4].map(function(e){return React__default.createElement(React.Fragment,{key:\"password-strength-bar-item-\"+e},1=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function i(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function u(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,\"__esModule\",{value:!0});var s=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o]);return r}function s(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function i(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function a(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,\"__esModule\",{value:!0});var l=Object.assign||function(e){for(var t=1;t1){for(var l=Array(i),c=0;c1){for(var l=Array(i),c=0;c1){for(var l=Array(i),c=0;c1){for(var l=Array(i),c=0;c=100&&!r?y.STATUSES.SUCCESS:r||y.STATUSES.ACTIVE;var v=o&&o[d],m=v?v.color:y.COLOR_MAP[d],w=v?v.trailColor:y.DEFAULT_TRAIL_COLOR;if(\"circle\"===c){var S=u||132,_=.16*S+6,O=1.25*_,C=v&&v.symbol||this.getSymbolByStatus(d,O),k=a({width:S,height:S,fontSize:_},n),x=f||6;return l(\"div\",{className:y.prefixClass+\"-circle-outer\",style:k},void 0,l(g.default,{percent:t,strokeWidth:x,strokeColor:m,trailColor:w,prefixClass:y.prefixClass,gapDegree:0,gapPosition:\"top\"}),l(\"div\",{className:h.default[y.prefixClass+\"-symbol-absolute\"]},void 0,l(\"div\",{className:(0,p.default)(h.default[y.prefixClass+\"-symbol\"],i)},void 0,C)))}var P=v&&v.symbol||this.getSymbolByStatus(d);return l(\"div\",{className:(0,p.default)(h.default[\"\"+y.prefixClass],s),style:n},void 0,l(b.default,{prefixClass:y.prefixClass,percent:t,status:d,background:m,trailColor:w}),l(\"div\",{className:(0,p.default)(h.default[y.prefixClass+\"-symbol\"],i)},void 0,P))}}]),t}(u.Component);_.defaultProps={percent:0},t.default=_},function(e,t){e.exports={\"react-sweet-progress-circle\":\"react-sweet-progress-circle\"}},function(e,t){e.exports={\"react-sweet-progress\":\"react-sweet-progress\",\"react-sweet-progress-symbol\":\"react-sweet-progress-symbol\",\"react-sweet-progress-symbol-absolute\":\"react-sweet-progress-symbol-absolute\",\"react-sweet-progress-circle-outer\":\"react-sweet-progress-circle-outer\"}},function(e,t,r){r(2),e.exports=r(2)}])});","/**\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","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.trimCanvas=t():e.trimCanvas=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p=\"\",t(0)}([function(e,t){\"use strict\";function r(e){var t=e.getContext(\"2d\"),r=e.width,n=e.height,o=t.getImageData(0,0,r,n).data,f=a(!0,r,n,o),i=a(!1,r,n,o),c=u(!0,r,n,o),d=u(!1,r,n,o),p=d-c+1,l=i-f+1,s=t.getImageData(c,f,p,l);return e.width=p,e.height=l,t.clearRect(0,0,p,l),t.putImageData(s,0,0),e}function n(e,t,r,n){return{red:n[4*(r*t+e)],green:n[4*(r*t+e)+1],blue:n[4*(r*t+e)+2],alpha:n[4*(r*t+e)+3]}}function o(e,t,r,o){return n(e,t,r,o).alpha}function a(e,t,r,n){for(var a=e?1:-1,u=e?0:r-1,f=u;e?f-1;f+=a)for(var i=0;i-1;f+=a)for(var i=0;i 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","/*!\n * Signature Pad v2.3.2\n * https://github.com/szimek/signature_pad\n *\n * Copyright 2017 Szymon Nowak\n * Released under the MIT license\n *\n * The main idea and some parts of the code (e.g. drawing variable width Bézier curve) are taken from:\n * http://corner.squareup.com/2012/07/smoother-signatures.html\n *\n * Implementation of interpolation using cubic Bézier curves is taken from:\n * http://benknowscode.wordpress.com/2012/09/14/path-interpolation-using-cubic-bezier-and-control-point-estimation-in-javascript\n *\n * Algorithm for approximated length of a Bézier curve is taken from:\n * http://www.lemoda.net/maths/bezier-length/index.html\n *\n */\n\nfunction Point(x, y, time) {\n this.x = x;\n this.y = y;\n this.time = time || new Date().getTime();\n}\n\nPoint.prototype.velocityFrom = function (start) {\n return this.time !== start.time ? this.distanceTo(start) / (this.time - start.time) : 1;\n};\n\nPoint.prototype.distanceTo = function (start) {\n return Math.sqrt(Math.pow(this.x - start.x, 2) + Math.pow(this.y - start.y, 2));\n};\n\nPoint.prototype.equals = function (other) {\n return this.x === other.x && this.y === other.y && this.time === other.time;\n};\n\nfunction Bezier(startPoint, control1, control2, endPoint) {\n this.startPoint = startPoint;\n this.control1 = control1;\n this.control2 = control2;\n this.endPoint = endPoint;\n}\n\n// Returns approximated length.\nBezier.prototype.length = function () {\n var steps = 10;\n var length = 0;\n var px = void 0;\n var py = void 0;\n\n for (var i = 0; i <= steps; i += 1) {\n var t = i / steps;\n var cx = this._point(t, this.startPoint.x, this.control1.x, this.control2.x, this.endPoint.x);\n var cy = this._point(t, this.startPoint.y, this.control1.y, this.control2.y, this.endPoint.y);\n if (i > 0) {\n var xdiff = cx - px;\n var ydiff = cy - py;\n length += Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n }\n px = cx;\n py = cy;\n }\n\n return length;\n};\n\n/* eslint-disable no-multi-spaces, space-in-parens */\nBezier.prototype._point = function (t, start, c1, c2, end) {\n return start * (1.0 - t) * (1.0 - t) * (1.0 - t) + 3.0 * c1 * (1.0 - t) * (1.0 - t) * t + 3.0 * c2 * (1.0 - t) * t * t + end * t * t * t;\n};\n\n/* eslint-disable */\n\n// http://stackoverflow.com/a/27078401/815507\nfunction throttle(func, wait, options) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n if (!options) options = {};\n var later = function later() {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n return function () {\n var now = Date.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n}\n\nfunction SignaturePad(canvas, options) {\n var self = this;\n var opts = options || {};\n\n this.velocityFilterWeight = opts.velocityFilterWeight || 0.7;\n this.minWidth = opts.minWidth || 0.5;\n this.maxWidth = opts.maxWidth || 2.5;\n this.throttle = 'throttle' in opts ? opts.throttle : 16; // in miliseconds\n this.minDistance = 'minDistance' in opts ? opts.minDistance : 5;\n\n if (this.throttle) {\n this._strokeMoveUpdate = throttle(SignaturePad.prototype._strokeUpdate, this.throttle);\n } else {\n this._strokeMoveUpdate = SignaturePad.prototype._strokeUpdate;\n }\n\n this.dotSize = opts.dotSize || function () {\n return (this.minWidth + this.maxWidth) / 2;\n };\n this.penColor = opts.penColor || 'black';\n this.backgroundColor = opts.backgroundColor || 'rgba(0,0,0,0)';\n this.onBegin = opts.onBegin;\n this.onEnd = opts.onEnd;\n\n this._canvas = canvas;\n this._ctx = canvas.getContext('2d');\n this.clear();\n\n // We need add these inline so they are available to unbind while still having\n // access to 'self' we could use _.bind but it's not worth adding a dependency.\n this._handleMouseDown = function (event) {\n if (event.which === 1) {\n self._mouseButtonDown = true;\n self._strokeBegin(event);\n }\n };\n\n this._handleMouseMove = function (event) {\n if (self._mouseButtonDown) {\n self._strokeMoveUpdate(event);\n }\n };\n\n this._handleMouseUp = function (event) {\n if (event.which === 1 && self._mouseButtonDown) {\n self._mouseButtonDown = false;\n self._strokeEnd(event);\n }\n };\n\n this._handleTouchStart = function (event) {\n if (event.targetTouches.length === 1) {\n var touch = event.changedTouches[0];\n self._strokeBegin(touch);\n }\n };\n\n this._handleTouchMove = function (event) {\n // Prevent scrolling.\n event.preventDefault();\n\n var touch = event.targetTouches[0];\n self._strokeMoveUpdate(touch);\n };\n\n this._handleTouchEnd = function (event) {\n var wasCanvasTouched = event.target === self._canvas;\n if (wasCanvasTouched) {\n event.preventDefault();\n self._strokeEnd(event);\n }\n };\n\n // Enable mouse and touch event handlers\n this.on();\n}\n\n// Public methods\nSignaturePad.prototype.clear = function () {\n var ctx = this._ctx;\n var canvas = this._canvas;\n\n ctx.fillStyle = this.backgroundColor;\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n this._data = [];\n this._reset();\n this._isEmpty = true;\n};\n\nSignaturePad.prototype.fromDataURL = function (dataUrl) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var image = new Image();\n var ratio = options.ratio || window.devicePixelRatio || 1;\n var width = options.width || this._canvas.width / ratio;\n var height = options.height || this._canvas.height / ratio;\n\n this._reset();\n image.src = dataUrl;\n image.onload = function () {\n _this._ctx.drawImage(image, 0, 0, width, height);\n };\n this._isEmpty = false;\n};\n\nSignaturePad.prototype.toDataURL = function (type) {\n var _canvas;\n\n switch (type) {\n case 'image/svg+xml':\n return this._toSVG();\n default:\n for (var _len = arguments.length, options = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n options[_key - 1] = arguments[_key];\n }\n\n return (_canvas = this._canvas).toDataURL.apply(_canvas, [type].concat(options));\n }\n};\n\nSignaturePad.prototype.on = function () {\n this._handleMouseEvents();\n this._handleTouchEvents();\n};\n\nSignaturePad.prototype.off = function () {\n this._canvas.removeEventListener('mousedown', this._handleMouseDown);\n this._canvas.removeEventListener('mousemove', this._handleMouseMove);\n document.removeEventListener('mouseup', this._handleMouseUp);\n\n this._canvas.removeEventListener('touchstart', this._handleTouchStart);\n this._canvas.removeEventListener('touchmove', this._handleTouchMove);\n this._canvas.removeEventListener('touchend', this._handleTouchEnd);\n};\n\nSignaturePad.prototype.isEmpty = function () {\n return this._isEmpty;\n};\n\n// Private methods\nSignaturePad.prototype._strokeBegin = function (event) {\n this._data.push([]);\n this._reset();\n this._strokeUpdate(event);\n\n if (typeof this.onBegin === 'function') {\n this.onBegin(event);\n }\n};\n\nSignaturePad.prototype._strokeUpdate = function (event) {\n var x = event.clientX;\n var y = event.clientY;\n\n var point = this._createPoint(x, y);\n var lastPointGroup = this._data[this._data.length - 1];\n var lastPoint = lastPointGroup && lastPointGroup[lastPointGroup.length - 1];\n var isLastPointTooClose = lastPoint && point.distanceTo(lastPoint) < this.minDistance;\n\n // Skip this point if it's too close to the previous one\n if (!(lastPoint && isLastPointTooClose)) {\n var _addPoint = this._addPoint(point),\n curve = _addPoint.curve,\n widths = _addPoint.widths;\n\n if (curve && widths) {\n this._drawCurve(curve, widths.start, widths.end);\n }\n\n this._data[this._data.length - 1].push({\n x: point.x,\n y: point.y,\n time: point.time,\n color: this.penColor\n });\n }\n};\n\nSignaturePad.prototype._strokeEnd = function (event) {\n var canDrawCurve = this.points.length > 2;\n var point = this.points[0]; // Point instance\n\n if (!canDrawCurve && point) {\n this._drawDot(point);\n }\n\n if (point) {\n var lastPointGroup = this._data[this._data.length - 1];\n var lastPoint = lastPointGroup[lastPointGroup.length - 1]; // plain object\n\n // When drawing a dot, there's only one point in a group, so without this check\n // such group would end up with exactly the same 2 points.\n if (!point.equals(lastPoint)) {\n lastPointGroup.push({\n x: point.x,\n y: point.y,\n time: point.time,\n color: this.penColor\n });\n }\n }\n\n if (typeof this.onEnd === 'function') {\n this.onEnd(event);\n }\n};\n\nSignaturePad.prototype._handleMouseEvents = function () {\n this._mouseButtonDown = false;\n\n this._canvas.addEventListener('mousedown', this._handleMouseDown);\n this._canvas.addEventListener('mousemove', this._handleMouseMove);\n document.addEventListener('mouseup', this._handleMouseUp);\n};\n\nSignaturePad.prototype._handleTouchEvents = function () {\n // Pass touch events to canvas element on mobile IE11 and Edge.\n this._canvas.style.msTouchAction = 'none';\n this._canvas.style.touchAction = 'none';\n\n this._canvas.addEventListener('touchstart', this._handleTouchStart);\n this._canvas.addEventListener('touchmove', this._handleTouchMove);\n this._canvas.addEventListener('touchend', this._handleTouchEnd);\n};\n\nSignaturePad.prototype._reset = function () {\n this.points = [];\n this._lastVelocity = 0;\n this._lastWidth = (this.minWidth + this.maxWidth) / 2;\n this._ctx.fillStyle = this.penColor;\n};\n\nSignaturePad.prototype._createPoint = function (x, y, time) {\n var rect = this._canvas.getBoundingClientRect();\n\n return new Point(x - rect.left, y - rect.top, time || new Date().getTime());\n};\n\nSignaturePad.prototype._addPoint = function (point) {\n var points = this.points;\n var tmp = void 0;\n\n points.push(point);\n\n if (points.length > 2) {\n // To reduce the initial lag make it work with 3 points\n // by copying the first point to the beginning.\n if (points.length === 3) points.unshift(points[0]);\n\n tmp = this._calculateCurveControlPoints(points[0], points[1], points[2]);\n var c2 = tmp.c2;\n tmp = this._calculateCurveControlPoints(points[1], points[2], points[3]);\n var c3 = tmp.c1;\n var curve = new Bezier(points[1], c2, c3, points[2]);\n var widths = this._calculateCurveWidths(curve);\n\n // Remove the first element from the list,\n // so that we always have no more than 4 points in points array.\n points.shift();\n\n return { curve: curve, widths: widths };\n }\n\n return {};\n};\n\nSignaturePad.prototype._calculateCurveControlPoints = function (s1, s2, s3) {\n var dx1 = s1.x - s2.x;\n var dy1 = s1.y - s2.y;\n var dx2 = s2.x - s3.x;\n var dy2 = s2.y - s3.y;\n\n var m1 = { x: (s1.x + s2.x) / 2.0, y: (s1.y + s2.y) / 2.0 };\n var m2 = { x: (s2.x + s3.x) / 2.0, y: (s2.y + s3.y) / 2.0 };\n\n var l1 = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n var l2 = Math.sqrt(dx2 * dx2 + dy2 * dy2);\n\n var dxm = m1.x - m2.x;\n var dym = m1.y - m2.y;\n\n var k = l2 / (l1 + l2);\n var cm = { x: m2.x + dxm * k, y: m2.y + dym * k };\n\n var tx = s2.x - cm.x;\n var ty = s2.y - cm.y;\n\n return {\n c1: new Point(m1.x + tx, m1.y + ty),\n c2: new Point(m2.x + tx, m2.y + ty)\n };\n};\n\nSignaturePad.prototype._calculateCurveWidths = function (curve) {\n var startPoint = curve.startPoint;\n var endPoint = curve.endPoint;\n var widths = { start: null, end: null };\n\n var velocity = this.velocityFilterWeight * endPoint.velocityFrom(startPoint) + (1 - this.velocityFilterWeight) * this._lastVelocity;\n\n var newWidth = this._strokeWidth(velocity);\n\n widths.start = this._lastWidth;\n widths.end = newWidth;\n\n this._lastVelocity = velocity;\n this._lastWidth = newWidth;\n\n return widths;\n};\n\nSignaturePad.prototype._strokeWidth = function (velocity) {\n return Math.max(this.maxWidth / (velocity + 1), this.minWidth);\n};\n\nSignaturePad.prototype._drawPoint = function (x, y, size) {\n var ctx = this._ctx;\n\n ctx.moveTo(x, y);\n ctx.arc(x, y, size, 0, 2 * Math.PI, false);\n this._isEmpty = false;\n};\n\nSignaturePad.prototype._drawCurve = function (curve, startWidth, endWidth) {\n var ctx = this._ctx;\n var widthDelta = endWidth - startWidth;\n var drawSteps = Math.floor(curve.length());\n\n ctx.beginPath();\n\n for (var i = 0; i < drawSteps; i += 1) {\n // Calculate the Bezier (x, y) coordinate for this step.\n var t = i / drawSteps;\n var tt = t * t;\n var ttt = tt * t;\n var u = 1 - t;\n var uu = u * u;\n var uuu = uu * u;\n\n var x = uuu * curve.startPoint.x;\n x += 3 * uu * t * curve.control1.x;\n x += 3 * u * tt * curve.control2.x;\n x += ttt * curve.endPoint.x;\n\n var y = uuu * curve.startPoint.y;\n y += 3 * uu * t * curve.control1.y;\n y += 3 * u * tt * curve.control2.y;\n y += ttt * curve.endPoint.y;\n\n var width = startWidth + ttt * widthDelta;\n this._drawPoint(x, y, width);\n }\n\n ctx.closePath();\n ctx.fill();\n};\n\nSignaturePad.prototype._drawDot = function (point) {\n var ctx = this._ctx;\n var width = typeof this.dotSize === 'function' ? this.dotSize() : this.dotSize;\n\n ctx.beginPath();\n this._drawPoint(point.x, point.y, width);\n ctx.closePath();\n ctx.fill();\n};\n\nSignaturePad.prototype._fromData = function (pointGroups, drawCurve, drawDot) {\n for (var i = 0; i < pointGroups.length; i += 1) {\n var group = pointGroups[i];\n\n if (group.length > 1) {\n for (var j = 0; j < group.length; j += 1) {\n var rawPoint = group[j];\n var point = new Point(rawPoint.x, rawPoint.y, rawPoint.time);\n var color = rawPoint.color;\n\n if (j === 0) {\n // First point in a group. Nothing to draw yet.\n\n // All points in the group have the same color, so it's enough to set\n // penColor just at the beginning.\n this.penColor = color;\n this._reset();\n\n this._addPoint(point);\n } else if (j !== group.length - 1) {\n // Middle point in a group.\n var _addPoint2 = this._addPoint(point),\n curve = _addPoint2.curve,\n widths = _addPoint2.widths;\n\n if (curve && widths) {\n drawCurve(curve, widths, color);\n }\n } else {\n // Last point in a group. Do nothing.\n }\n }\n } else {\n this._reset();\n var _rawPoint = group[0];\n drawDot(_rawPoint);\n }\n }\n};\n\nSignaturePad.prototype._toSVG = function () {\n var _this2 = this;\n\n var pointGroups = this._data;\n var canvas = this._canvas;\n var ratio = Math.max(window.devicePixelRatio || 1, 1);\n var minX = 0;\n var minY = 0;\n var maxX = canvas.width / ratio;\n var maxY = canvas.height / ratio;\n var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n\n svg.setAttributeNS(null, 'width', canvas.width);\n svg.setAttributeNS(null, 'height', canvas.height);\n\n this._fromData(pointGroups, function (curve, widths, color) {\n var path = document.createElement('path');\n\n // Need to check curve for NaN values, these pop up when drawing\n // lines on the canvas that are not continuous. E.g. Sharp corners\n // or stopping mid-stroke and than continuing without lifting mouse.\n if (!isNaN(curve.control1.x) && !isNaN(curve.control1.y) && !isNaN(curve.control2.x) && !isNaN(curve.control2.y)) {\n var attr = 'M ' + curve.startPoint.x.toFixed(3) + ',' + curve.startPoint.y.toFixed(3) + ' ' + ('C ' + curve.control1.x.toFixed(3) + ',' + curve.control1.y.toFixed(3) + ' ') + (curve.control2.x.toFixed(3) + ',' + curve.control2.y.toFixed(3) + ' ') + (curve.endPoint.x.toFixed(3) + ',' + curve.endPoint.y.toFixed(3));\n\n path.setAttribute('d', attr);\n path.setAttribute('stroke-width', (widths.end * 2.25).toFixed(3));\n path.setAttribute('stroke', color);\n path.setAttribute('fill', 'none');\n path.setAttribute('stroke-linecap', 'round');\n\n svg.appendChild(path);\n }\n }, function (rawPoint) {\n var circle = document.createElement('circle');\n var dotSize = typeof _this2.dotSize === 'function' ? _this2.dotSize() : _this2.dotSize;\n circle.setAttribute('r', dotSize);\n circle.setAttribute('cx', rawPoint.x);\n circle.setAttribute('cy', rawPoint.y);\n circle.setAttribute('fill', rawPoint.color);\n\n svg.appendChild(circle);\n });\n\n var prefix = 'data:image/svg+xml;base64,';\n var header = '';\n var body = svg.innerHTML;\n\n // IE hack for missing innerHTML property on SVGElement\n if (body === undefined) {\n var dummy = document.createElement('dummy');\n var nodes = svg.childNodes;\n dummy.innerHTML = '';\n\n for (var i = 0; i < nodes.length; i += 1) {\n dummy.appendChild(nodes[i].cloneNode(true));\n }\n\n body = dummy.innerHTML;\n }\n\n var footer = '';\n var data = header + body + footer;\n\n return prefix + btoa(data);\n};\n\nSignaturePad.prototype.fromData = function (pointGroups) {\n var _this3 = this;\n\n this.clear();\n\n this._fromData(pointGroups, function (curve, widths) {\n return _this3._drawCurve(curve, widths.start, widths.end);\n }, function (rawPoint) {\n return _this3._drawDot(rawPoint);\n });\n\n this._data = pointGroups;\n};\n\nSignaturePad.prototype.toData = function () {\n return this._data;\n};\n\nexport default SignaturePad;\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\t// no module.id needed\n\t\t// no module.loaded needed\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// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return 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(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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__.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 = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(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__.p = \"/\";","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n };\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\n const isStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })();\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if(!requestHeaders.getContentType(/^\\s*multipart\\/form-data/)){\n requestHeaders.setContentType('multipart/form-data'); // mobile/desktop app frameworks\n } else if(utils.isString(contentType = requestHeaders.getContentType())){\n // fix semicolon duplication issue for ReactNative FormData implementation\n requestHeaders.setContentType(contentType.replace(/^\\s*(multipart\\/form-data);+/, '$1'))\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.5.1\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import axios from 'axios';\nimport { _security } from \"../common/constants\";\n\nconst instance = axios.create({\n baseURL: `${_security.apiBaseUrl}/${_security.apiSuffix}`,\n});\n\n// Add a request interceptor to include the JWT token in the headers\ninstance.interceptors.request.use(\n (config) => {\n\n const token = localStorage.getItem('token');\n\n if (token) {\n config.headers.Authorization = `Bearer ${token}`;\n }\n\n config.headers['x-api-key'] = _security.apiKey;\n\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n);\n\nexport default instance;","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = useState(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = useEvent(onChange);\n var _useState3 = useState([mergedValue]),\n _useState4 = _slicedToArray(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n useLayoutUpdateEffect(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n useLayoutUpdateEffect(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nexport function warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nexport function note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"./warning\";\n\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n var refSet = new Set();\n function deepEqual(a, b) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var circular = refSet.has(a);\n warning(!circular, 'Warning: There may be circular references');\n if (circular) {\n return false;\n }\n if (a === b) {\n return true;\n }\n if (shallow && level > 1) {\n return false;\n }\n refSet.add(a);\n var newLevel = level + 1;\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], newLevel)) {\n return false;\n }\n }\n return true;\n }\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n return keys.every(function (key) {\n return deepEqual(a[key], b[key], newLevel);\n });\n }\n // other\n return false;\n }\n return deepEqual(obj1, obj2);\n}\nexport default isEqual;","import * as React from 'react';\nvar SliderContext = /*#__PURE__*/React.createContext({\n min: 0,\n max: 0,\n direction: 'ltr',\n step: 1,\n includedStart: 0,\n includedEnd: 0,\n tabIndex: 0,\n keyboard: true,\n styles: {},\n classNames: {}\n});\nexport default SliderContext;","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","export function getOffset(value, min, max) {\n return (value - min) / (max - min);\n}\nexport function getDirectionStyle(direction, value, min, max) {\n var offset = getOffset(value, min, max);\n var positionStyle = {};\n switch (direction) {\n case 'rtl':\n positionStyle.right = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateX(50%)';\n break;\n case 'btt':\n positionStyle.bottom = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateY(50%)';\n break;\n case 'ttb':\n positionStyle.top = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateY(-50%)';\n break;\n default:\n positionStyle.left = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateX(-50%)';\n break;\n }\n return positionStyle;\n}\n\n/** Return index value if is list or return value directly */\nexport function getIndex(value, index) {\n return Array.isArray(value) ? value[index] : value;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"value\", \"valueIndex\", \"onStartMove\", \"style\", \"render\", \"dragging\", \"onOffsetChange\", \"onChangeComplete\"];\nimport cls from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getDirectionStyle, getIndex } from \"../util\";\nvar Handle = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _cls, _getIndex;\n var prefixCls = props.prefixCls,\n value = props.value,\n valueIndex = props.valueIndex,\n onStartMove = props.onStartMove,\n style = props.style,\n render = props.render,\n dragging = props.dragging,\n onOffsetChange = props.onOffsetChange,\n onChangeComplete = props.onChangeComplete,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n disabled = _React$useContext.disabled,\n keyboard = _React$useContext.keyboard,\n range = _React$useContext.range,\n tabIndex = _React$useContext.tabIndex,\n ariaLabelForHandle = _React$useContext.ariaLabelForHandle,\n ariaLabelledByForHandle = _React$useContext.ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle = _React$useContext.ariaValueTextFormatterForHandle,\n styles = _React$useContext.styles,\n classNames = _React$useContext.classNames;\n var handlePrefixCls = \"\".concat(prefixCls, \"-handle\");\n\n // ============================ Events ============================\n var onInternalStartMove = function onInternalStartMove(e) {\n if (!disabled) {\n onStartMove(e, valueIndex);\n }\n };\n\n // =========================== Keyboard ===========================\n var onKeyDown = function onKeyDown(e) {\n if (!disabled && keyboard) {\n var offset = null;\n\n // Change the value\n switch (e.which || e.keyCode) {\n case KeyCode.LEFT:\n offset = direction === 'ltr' || direction === 'btt' ? -1 : 1;\n break;\n case KeyCode.RIGHT:\n offset = direction === 'ltr' || direction === 'btt' ? 1 : -1;\n break;\n\n // Up is plus\n case KeyCode.UP:\n offset = direction !== 'ttb' ? 1 : -1;\n break;\n\n // Down is minus\n case KeyCode.DOWN:\n offset = direction !== 'ttb' ? -1 : 1;\n break;\n case KeyCode.HOME:\n offset = 'min';\n break;\n case KeyCode.END:\n offset = 'max';\n break;\n case KeyCode.PAGE_UP:\n offset = 2;\n break;\n case KeyCode.PAGE_DOWN:\n offset = -2;\n break;\n }\n if (offset !== null) {\n e.preventDefault();\n onOffsetChange(offset, valueIndex);\n }\n }\n };\n var handleKeyUp = function handleKeyUp(e) {\n switch (e.which || e.keyCode) {\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n case KeyCode.UP:\n case KeyCode.DOWN:\n case KeyCode.HOME:\n case KeyCode.END:\n case KeyCode.PAGE_UP:\n case KeyCode.PAGE_DOWN:\n onChangeComplete === null || onChangeComplete === void 0 || onChangeComplete();\n break;\n }\n };\n\n // ============================ Offset ============================\n var positionStyle = getDirectionStyle(direction, value, min, max);\n\n // ============================ Render ============================\n var handleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n className: cls(handlePrefixCls, (_cls = {}, _defineProperty(_cls, \"\".concat(handlePrefixCls, \"-\").concat(valueIndex + 1), range), _defineProperty(_cls, \"\".concat(handlePrefixCls, \"-dragging\"), dragging), _cls), classNames.handle),\n style: _objectSpread(_objectSpread(_objectSpread({}, positionStyle), style), styles.handle),\n onMouseDown: onInternalStartMove,\n onTouchStart: onInternalStartMove,\n onKeyDown: onKeyDown,\n onKeyUp: handleKeyUp,\n tabIndex: disabled ? null : getIndex(tabIndex, valueIndex),\n role: \"slider\",\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": value,\n \"aria-disabled\": disabled,\n \"aria-label\": getIndex(ariaLabelForHandle, valueIndex),\n \"aria-labelledby\": getIndex(ariaLabelledByForHandle, valueIndex),\n \"aria-valuetext\": (_getIndex = getIndex(ariaValueTextFormatterForHandle, valueIndex)) === null || _getIndex === void 0 ? void 0 : _getIndex(value),\n \"aria-orientation\": direction === 'ltr' || direction === 'rtl' ? 'horizontal' : 'vertical'\n }, restProps));\n\n // Customize\n if (render) {\n handleNode = render(handleNode, {\n index: valueIndex,\n prefixCls: prefixCls,\n value: value,\n dragging: dragging\n });\n }\n return handleNode;\n});\nif (process.env.NODE_ENV !== 'production') {\n Handle.displayName = 'Handle';\n}\nexport default Handle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"style\", \"onStartMove\", \"onOffsetChange\", \"values\", \"handleRender\", \"draggingIndex\"];\nimport * as React from 'react';\nimport Handle from \"./Handle\";\nimport { getIndex } from \"../util\";\nvar Handles = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n style = props.style,\n onStartMove = props.onStartMove,\n onOffsetChange = props.onOffsetChange,\n values = props.values,\n handleRender = props.handleRender,\n draggingIndex = props.draggingIndex,\n restProps = _objectWithoutProperties(props, _excluded);\n var handlesRef = React.useRef({});\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus(index) {\n var _handlesRef$current$i;\n (_handlesRef$current$i = handlesRef.current[index]) === null || _handlesRef$current$i === void 0 || _handlesRef$current$i.focus();\n }\n };\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, values.map(function (value, index) {\n return /*#__PURE__*/React.createElement(Handle, _extends({\n ref: function ref(node) {\n if (!node) {\n delete handlesRef.current[index];\n } else {\n handlesRef.current[index] = node;\n }\n },\n dragging: draggingIndex === index,\n prefixCls: prefixCls,\n style: getIndex(style, index),\n key: index,\n value: value,\n valueIndex: index,\n onStartMove: onStartMove,\n onOffsetChange: onOffsetChange,\n render: handleRender\n }, restProps));\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Handles.displayName = 'Handles';\n}\nexport default Handles;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nfunction getPosition(e) {\n var obj = 'touches' in e ? e.touches[0] : e;\n return {\n pageX: obj.pageX,\n pageY: obj.pageY\n };\n}\nexport default function useDrag(containerRef, direction, rawValues, min, max, formatValue, triggerChange, finishChange, offsetValues) {\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n draggingValue = _React$useState2[0],\n setDraggingValue = _React$useState2[1];\n var _React$useState3 = React.useState(-1),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n draggingIndex = _React$useState4[0],\n setDraggingIndex = _React$useState4[1];\n var _React$useState5 = React.useState(rawValues),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n cacheValues = _React$useState6[0],\n setCacheValues = _React$useState6[1];\n var _React$useState7 = React.useState(rawValues),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n originValues = _React$useState8[0],\n setOriginValues = _React$useState8[1];\n var mouseMoveEventRef = React.useRef(null);\n var mouseUpEventRef = React.useRef(null);\n React.useEffect(function () {\n if (draggingIndex === -1) {\n setCacheValues(rawValues);\n }\n }, [rawValues, draggingIndex]);\n\n // Clean up event\n React.useEffect(function () {\n return function () {\n document.removeEventListener('mousemove', mouseMoveEventRef.current);\n document.removeEventListener('mouseup', mouseUpEventRef.current);\n document.removeEventListener('touchmove', mouseMoveEventRef.current);\n document.removeEventListener('touchend', mouseUpEventRef.current);\n };\n }, []);\n var flushValues = function flushValues(nextValues, nextValue) {\n // Perf: Only update state when value changed\n if (cacheValues.some(function (val, i) {\n return val !== nextValues[i];\n })) {\n if (nextValue !== undefined) {\n setDraggingValue(nextValue);\n }\n setCacheValues(nextValues);\n triggerChange(nextValues);\n }\n };\n var updateCacheValue = function updateCacheValue(valueIndex, offsetPercent) {\n // Basic point offset\n\n if (valueIndex === -1) {\n // >>>> Dragging on the track\n var startValue = originValues[0];\n var endValue = originValues[originValues.length - 1];\n var maxStartOffset = min - startValue;\n var maxEndOffset = max - endValue;\n\n // Get valid offset\n var offset = offsetPercent * (max - min);\n offset = Math.max(offset, maxStartOffset);\n offset = Math.min(offset, maxEndOffset);\n\n // Use first value to revert back of valid offset (like steps marks)\n var formatStartValue = formatValue(startValue + offset);\n offset = formatStartValue - startValue;\n var cloneCacheValues = originValues.map(function (val) {\n return val + offset;\n });\n flushValues(cloneCacheValues);\n } else {\n // >>>> Dragging on the handle\n var offsetDist = (max - min) * offsetPercent;\n\n // Always start with the valueIndex origin value\n var cloneValues = _toConsumableArray(cacheValues);\n cloneValues[valueIndex] = originValues[valueIndex];\n var next = offsetValues(cloneValues, offsetDist, valueIndex, 'dist');\n flushValues(next.values, next.value);\n }\n };\n\n // Resolve closure\n var updateCacheValueRef = React.useRef(updateCacheValue);\n updateCacheValueRef.current = updateCacheValue;\n var onStartMove = function onStartMove(e, valueIndex, startValues) {\n e.stopPropagation();\n\n // 如果是点击 track 触发的,需要传入变化后的初始值,而不能直接用 rawValues\n var initialValues = startValues || rawValues;\n var originValue = initialValues[valueIndex];\n setDraggingIndex(valueIndex);\n setDraggingValue(originValue);\n setOriginValues(initialValues);\n var _getPosition = getPosition(e),\n startX = _getPosition.pageX,\n startY = _getPosition.pageY;\n\n // Moving\n var onMouseMove = function onMouseMove(event) {\n event.preventDefault();\n var _getPosition2 = getPosition(event),\n moveX = _getPosition2.pageX,\n moveY = _getPosition2.pageY;\n var offsetX = moveX - startX;\n var offsetY = moveY - startY;\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height;\n var offSetPercent;\n switch (direction) {\n case 'btt':\n offSetPercent = -offsetY / height;\n break;\n case 'ttb':\n offSetPercent = offsetY / height;\n break;\n case 'rtl':\n offSetPercent = -offsetX / width;\n break;\n default:\n offSetPercent = offsetX / width;\n }\n updateCacheValueRef.current(valueIndex, offSetPercent);\n };\n\n // End\n var onMouseUp = function onMouseUp(event) {\n event.preventDefault();\n document.removeEventListener('mouseup', onMouseUp);\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('touchend', onMouseUp);\n document.removeEventListener('touchmove', onMouseMove);\n mouseMoveEventRef.current = null;\n mouseUpEventRef.current = null;\n setDraggingIndex(-1);\n finishChange();\n };\n document.addEventListener('mouseup', onMouseUp);\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('touchend', onMouseUp);\n document.addEventListener('touchmove', onMouseMove);\n mouseMoveEventRef.current = onMouseMove;\n mouseUpEventRef.current = onMouseUp;\n };\n\n // Only return cache value when it mapping with rawValues\n var returnValues = React.useMemo(function () {\n var sourceValues = _toConsumableArray(rawValues).sort(function (a, b) {\n return a - b;\n });\n var targetValues = _toConsumableArray(cacheValues).sort(function (a, b) {\n return a - b;\n });\n return sourceValues.every(function (val, index) {\n return val === targetValues[index];\n }) ? cacheValues : rawValues;\n }, [rawValues, cacheValues]);\n return [draggingIndex, draggingValue, returnValues, onStartMove];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { getDirectionStyle } from \"../util\";\nimport SliderContext from \"../context\";\nexport default function Mark(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n children = props.children,\n value = props.value,\n _onClick = props.onClick;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n includedStart = _React$useContext.includedStart,\n includedEnd = _React$useContext.includedEnd,\n included = _React$useContext.included;\n var textCls = \"\".concat(prefixCls, \"-text\");\n\n // ============================ Offset ============================\n var positionStyle = getDirectionStyle(direction, value, min, max);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(textCls, _defineProperty({}, \"\".concat(textCls, \"-active\"), included && includedStart <= value && value <= includedEnd)),\n style: _objectSpread(_objectSpread({}, positionStyle), style),\n onMouseDown: function onMouseDown(e) {\n e.stopPropagation();\n },\n onClick: function onClick() {\n _onClick(value);\n }\n }, children);\n}","import * as React from 'react';\nimport Mark from \"./Mark\";\nexport default function Marks(props) {\n var prefixCls = props.prefixCls,\n marks = props.marks,\n onClick = props.onClick;\n var markPrefixCls = \"\".concat(prefixCls, \"-mark\");\n\n // Not render mark if empty\n if (!marks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: markPrefixCls\n }, marks.map(function (_ref) {\n var value = _ref.value,\n style = _ref.style,\n label = _ref.label;\n return /*#__PURE__*/React.createElement(Mark, {\n key: value,\n prefixCls: markPrefixCls,\n style: style,\n value: value,\n onClick: onClick\n }, label);\n }));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { getDirectionStyle } from \"../util\";\nimport SliderContext from \"../context\";\nexport default function Dot(props) {\n var prefixCls = props.prefixCls,\n value = props.value,\n style = props.style,\n activeStyle = props.activeStyle;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n included = _React$useContext.included,\n includedStart = _React$useContext.includedStart,\n includedEnd = _React$useContext.includedEnd;\n var dotClassName = \"\".concat(prefixCls, \"-dot\");\n var active = included && includedStart <= value && value <= includedEnd;\n\n // ============================ Offset ============================\n var mergedStyle = _objectSpread(_objectSpread({}, getDirectionStyle(direction, value, min, max)), typeof style === 'function' ? style(value) : style);\n if (active) {\n mergedStyle = _objectSpread(_objectSpread({}, mergedStyle), typeof activeStyle === 'function' ? activeStyle(value) : activeStyle);\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(dotClassName, _defineProperty({}, \"\".concat(dotClassName, \"-active\"), active)),\n style: mergedStyle\n });\n}","import * as React from 'react';\nimport SliderContext from \"../context\";\nimport Dot from \"./Dot\";\nexport default function Steps(props) {\n var prefixCls = props.prefixCls,\n marks = props.marks,\n dots = props.dots,\n style = props.style,\n activeStyle = props.activeStyle;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n step = _React$useContext.step;\n var stepDots = React.useMemo(function () {\n var dotSet = new Set();\n\n // Add marks\n marks.forEach(function (mark) {\n dotSet.add(mark.value);\n });\n\n // Fill dots\n if (dots && step !== null) {\n var current = min;\n while (current <= max) {\n dotSet.add(current);\n current += step;\n }\n }\n return Array.from(dotSet);\n }, [min, max, step, dots, marks]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-step\")\n }, stepDots.map(function (dotValue) {\n return /*#__PURE__*/React.createElement(Dot, {\n prefixCls: prefixCls,\n key: dotValue,\n value: dotValue,\n style: style,\n activeStyle: activeStyle\n });\n }));\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport cls from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getOffset } from \"../util\";\nexport default function Track(props) {\n var _cls;\n var prefixCls = props.prefixCls,\n style = props.style,\n start = props.start,\n end = props.end,\n index = props.index,\n onStartMove = props.onStartMove,\n replaceCls = props.replaceCls;\n var _React$useContext = React.useContext(SliderContext),\n direction = _React$useContext.direction,\n min = _React$useContext.min,\n max = _React$useContext.max,\n disabled = _React$useContext.disabled,\n range = _React$useContext.range,\n classNames = _React$useContext.classNames;\n var trackPrefixCls = \"\".concat(prefixCls, \"-track\");\n var offsetStart = getOffset(start, min, max);\n var offsetEnd = getOffset(end, min, max);\n\n // ============================ Events ============================\n var onInternalStartMove = function onInternalStartMove(e) {\n if (!disabled && onStartMove) {\n onStartMove(e, -1);\n }\n };\n\n // ============================ Render ============================\n var positionStyle = {};\n switch (direction) {\n case 'rtl':\n positionStyle.right = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.width = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n case 'btt':\n positionStyle.bottom = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.height = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n case 'ttb':\n positionStyle.top = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.height = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n default:\n positionStyle.left = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.width = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n }\n var className = replaceCls || cls(trackPrefixCls, (_cls = {}, _defineProperty(_cls, \"\".concat(trackPrefixCls, \"-\").concat(index + 1), index !== null && range), _defineProperty(_cls, \"\".concat(prefixCls, \"-track-draggable\"), onStartMove), _cls), classNames.track);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: _objectSpread(_objectSpread({}, positionStyle), style),\n onMouseDown: onInternalStartMove,\n onTouchStart: onInternalStartMove\n });\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport cls from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getIndex } from \"../util\";\nimport Track from \"./Track\";\nexport default function Tracks(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n values = props.values,\n startPoint = props.startPoint,\n onStartMove = props.onStartMove;\n var _React$useContext = React.useContext(SliderContext),\n included = _React$useContext.included,\n range = _React$useContext.range,\n min = _React$useContext.min,\n styles = _React$useContext.styles,\n classNames = _React$useContext.classNames;\n\n // =========================== List ===========================\n var trackList = React.useMemo(function () {\n if (!range) {\n // null value do not have track\n if (values.length === 0) {\n return [];\n }\n var startValue = startPoint !== null && startPoint !== void 0 ? startPoint : min;\n var endValue = values[0];\n return [{\n start: Math.min(startValue, endValue),\n end: Math.max(startValue, endValue)\n }];\n }\n\n // Multiple\n var list = [];\n for (var i = 0; i < values.length - 1; i += 1) {\n list.push({\n start: values[i],\n end: values[i + 1]\n });\n }\n return list;\n }, [values, range, startPoint, min]);\n\n // ========================== Render ==========================\n var tracksNode = null;\n if (classNames.tracks || styles.tracks) {\n tracksNode = /*#__PURE__*/React.createElement(Track, {\n index: null,\n prefixCls: prefixCls,\n start: trackList[0].start,\n end: trackList[trackList.length - 1].end,\n replaceCls: cls(classNames.tracks, \"\".concat(prefixCls, \"-tracks\")),\n style: styles.tracks\n });\n }\n return included ? /*#__PURE__*/React.createElement(React.Fragment, null, tracksNode, trackList.map(function (_ref, index) {\n var start = _ref.start,\n end = _ref.end;\n return /*#__PURE__*/React.createElement(Track, {\n index: index,\n prefixCls: prefixCls,\n style: _objectSpread(_objectSpread({}, getIndex(style, index)), styles.track),\n start: start,\n end: end,\n key: index,\n onStartMove: onStartMove\n });\n })) : null;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport cls from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport SliderContext from \"./context\";\nimport Handles from \"./Handles\";\nimport useDrag from \"./hooks/useDrag\";\nimport useOffset from \"./hooks/useOffset\";\nimport Marks from \"./Marks\";\nimport Steps from \"./Steps\";\nimport Tracks from \"./Tracks\";\n\n/**\n * New:\n * - click mark to update range value\n * - handleRender\n * - Fix handle with count not correct\n * - Fix pushable not work in some case\n * - No more FindDOMNode\n * - Move all position related style into inline style\n * - Key: up is plus, down is minus\n * - fix Key with step = null not align with marks\n * - Change range should not trigger onChange\n * - keyboard support pushable\n */\n\nvar Slider = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _cls;\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-slider' : _props$prefixCls,\n className = props.className,\n style = props.style,\n classNames = props.classNames,\n styles = props.styles,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$keyboard = props.keyboard,\n keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n autoFocus = props.autoFocus,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n _props$min = props.min,\n min = _props$min === void 0 ? 0 : _props$min,\n _props$max = props.max,\n max = _props$max === void 0 ? 100 : _props$max,\n _props$step = props.step,\n step = _props$step === void 0 ? 1 : _props$step,\n value = props.value,\n defaultValue = props.defaultValue,\n range = props.range,\n count = props.count,\n onChange = props.onChange,\n onBeforeChange = props.onBeforeChange,\n onAfterChange = props.onAfterChange,\n onChangeComplete = props.onChangeComplete,\n _props$allowCross = props.allowCross,\n allowCross = _props$allowCross === void 0 ? true : _props$allowCross,\n _props$pushable = props.pushable,\n pushable = _props$pushable === void 0 ? false : _props$pushable,\n draggableTrack = props.draggableTrack,\n reverse = props.reverse,\n vertical = props.vertical,\n _props$included = props.included,\n included = _props$included === void 0 ? true : _props$included,\n startPoint = props.startPoint,\n trackStyle = props.trackStyle,\n handleStyle = props.handleStyle,\n railStyle = props.railStyle,\n dotStyle = props.dotStyle,\n activeDotStyle = props.activeDotStyle,\n marks = props.marks,\n dots = props.dots,\n handleRender = props.handleRender,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n ariaLabelForHandle = props.ariaLabelForHandle,\n ariaLabelledByForHandle = props.ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle = props.ariaValueTextFormatterForHandle;\n var handlesRef = React.useRef();\n var containerRef = React.useRef();\n var direction = React.useMemo(function () {\n if (vertical) {\n return reverse ? 'ttb' : 'btt';\n }\n return reverse ? 'rtl' : 'ltr';\n }, [reverse, vertical]);\n\n // ============================ Range =============================\n var mergedMin = React.useMemo(function () {\n return isFinite(min) ? min : 0;\n }, [min]);\n var mergedMax = React.useMemo(function () {\n return isFinite(max) ? max : 100;\n }, [max]);\n\n // ============================= Step =============================\n var mergedStep = React.useMemo(function () {\n return step !== null && step <= 0 ? 1 : step;\n }, [step]);\n\n // ============================= Push =============================\n var mergedPush = React.useMemo(function () {\n if (typeof pushable === 'boolean') {\n return pushable ? mergedStep : false;\n }\n return pushable >= 0 ? pushable : false;\n }, [pushable, mergedStep]);\n\n // ============================ Marks =============================\n var markList = React.useMemo(function () {\n var keys = Object.keys(marks || {});\n return keys.map(function (key) {\n var mark = marks[key];\n var markObj = {\n value: Number(key)\n };\n if (mark && _typeof(mark) === 'object' && ! /*#__PURE__*/React.isValidElement(mark) && ('label' in mark || 'style' in mark)) {\n markObj.style = mark.style;\n markObj.label = mark.label;\n } else {\n markObj.label = mark;\n }\n return markObj;\n }).filter(function (_ref) {\n var label = _ref.label;\n return label || typeof label === 'number';\n }).sort(function (a, b) {\n return a.value - b.value;\n });\n }, [marks]);\n\n // ============================ Format ============================\n var _useOffset = useOffset(mergedMin, mergedMax, mergedStep, markList, allowCross, mergedPush),\n _useOffset2 = _slicedToArray(_useOffset, 2),\n formatValue = _useOffset2[0],\n offsetValues = _useOffset2[1];\n\n // ============================ Values ============================\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var rawValues = React.useMemo(function () {\n var valueList = mergedValue === null || mergedValue === undefined ? [] : Array.isArray(mergedValue) ? mergedValue : [mergedValue];\n var _valueList = _slicedToArray(valueList, 1),\n _valueList$ = _valueList[0],\n val0 = _valueList$ === void 0 ? mergedMin : _valueList$;\n var returnValues = mergedValue === null ? [] : [val0];\n\n // Format as range\n if (range) {\n returnValues = _toConsumableArray(valueList);\n\n // When count provided or value is `undefined`, we fill values\n if (count || mergedValue === undefined) {\n var pointCount = count >= 0 ? count + 1 : 2;\n returnValues = returnValues.slice(0, pointCount);\n\n // Fill with count\n while (returnValues.length < pointCount) {\n var _returnValues;\n returnValues.push((_returnValues = returnValues[returnValues.length - 1]) !== null && _returnValues !== void 0 ? _returnValues : mergedMin);\n }\n }\n returnValues.sort(function (a, b) {\n return a - b;\n });\n }\n\n // Align in range\n returnValues.forEach(function (val, index) {\n returnValues[index] = formatValue(val);\n });\n return returnValues;\n }, [mergedValue, range, mergedMin, count, formatValue]);\n\n // =========================== onChange ===========================\n var rawValuesRef = React.useRef(rawValues);\n rawValuesRef.current = rawValues;\n var getTriggerValue = function getTriggerValue(triggerValues) {\n return range ? triggerValues : triggerValues[0];\n };\n var triggerChange = function triggerChange(nextValues) {\n // Order first\n var cloneNextValues = _toConsumableArray(nextValues).sort(function (a, b) {\n return a - b;\n });\n\n // Trigger event if needed\n if (onChange && !isEqual(cloneNextValues, rawValuesRef.current, true)) {\n onChange(getTriggerValue(cloneNextValues));\n }\n\n // We set this later since it will re-render component immediately\n setValue(cloneNextValues);\n };\n var finishChange = function finishChange() {\n onAfterChange === null || onAfterChange === void 0 || onAfterChange(getTriggerValue(rawValuesRef.current));\n warning(!onAfterChange, '[rc-slider] `onAfterChange` is deprecated. Please use `onChangeComplete` instead.');\n onChangeComplete === null || onChangeComplete === void 0 || onChangeComplete(getTriggerValue(rawValuesRef.current));\n };\n var _useDrag = useDrag(containerRef, direction, rawValues, mergedMin, mergedMax, formatValue, triggerChange, finishChange, offsetValues),\n _useDrag2 = _slicedToArray(_useDrag, 4),\n draggingIndex = _useDrag2[0],\n draggingValue = _useDrag2[1],\n cacheValues = _useDrag2[2],\n onStartDrag = _useDrag2[3];\n var changeToCloseValue = function changeToCloseValue(newValue, e) {\n if (!disabled) {\n var valueIndex = 0;\n var valueDist = mergedMax - mergedMin;\n rawValues.forEach(function (val, index) {\n var dist = Math.abs(newValue - val);\n if (dist <= valueDist) {\n valueDist = dist;\n valueIndex = index;\n }\n });\n\n // Create new values\n var cloneNextValues = _toConsumableArray(rawValues);\n cloneNextValues[valueIndex] = newValue;\n\n // Fill value to match default 2\n if (range && !rawValues.length && count === undefined) {\n cloneNextValues.push(newValue);\n }\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(cloneNextValues));\n triggerChange(cloneNextValues);\n if (e) {\n onStartDrag(e, valueIndex, cloneNextValues);\n }\n }\n };\n\n // ============================ Click =============================\n var onSliderMouseDown = function onSliderMouseDown(e) {\n e.preventDefault();\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height,\n left = _containerRef$current.left,\n top = _containerRef$current.top,\n bottom = _containerRef$current.bottom,\n right = _containerRef$current.right;\n var clientX = e.clientX,\n clientY = e.clientY;\n var percent;\n switch (direction) {\n case 'btt':\n percent = (bottom - clientY) / height;\n break;\n case 'ttb':\n percent = (clientY - top) / height;\n break;\n case 'rtl':\n percent = (right - clientX) / width;\n break;\n default:\n percent = (clientX - left) / width;\n }\n var nextValue = mergedMin + percent * (mergedMax - mergedMin);\n changeToCloseValue(formatValue(nextValue), e);\n };\n\n // =========================== Keyboard ===========================\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n keyboardValue = _React$useState2[0],\n setKeyboardValue = _React$useState2[1];\n var onHandleOffsetChange = function onHandleOffsetChange(offset, valueIndex) {\n if (!disabled) {\n var next = offsetValues(rawValues, offset, valueIndex);\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(rawValues));\n triggerChange(next.values);\n setKeyboardValue(next.value);\n }\n };\n React.useEffect(function () {\n if (keyboardValue !== null) {\n var valueIndex = rawValues.indexOf(keyboardValue);\n if (valueIndex >= 0) {\n handlesRef.current.focus(valueIndex);\n }\n }\n setKeyboardValue(null);\n }, [keyboardValue]);\n\n // ============================= Drag =============================\n var mergedDraggableTrack = React.useMemo(function () {\n if (draggableTrack && mergedStep === null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`draggableTrack` is not supported when `step` is `null`.');\n }\n return false;\n }\n return draggableTrack;\n }, [draggableTrack, mergedStep]);\n var onStartMove = function onStartMove(e, valueIndex) {\n onStartDrag(e, valueIndex);\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(rawValuesRef.current));\n };\n\n // Auto focus for updated handle\n var dragging = draggingIndex !== -1;\n React.useEffect(function () {\n if (!dragging) {\n var valueIndex = rawValues.lastIndexOf(draggingValue);\n handlesRef.current.focus(valueIndex);\n }\n }, [dragging]);\n\n // =========================== Included ===========================\n var sortedCacheValues = React.useMemo(function () {\n return _toConsumableArray(cacheValues).sort(function (a, b) {\n return a - b;\n });\n }, [cacheValues]);\n\n // Provide a range values with included [min, max]\n // Used for Track, Mark & Dot\n var _React$useMemo = React.useMemo(function () {\n if (!range) {\n return [mergedMin, sortedCacheValues[0]];\n }\n return [sortedCacheValues[0], sortedCacheValues[sortedCacheValues.length - 1]];\n }, [sortedCacheValues, range, mergedMin]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n includedStart = _React$useMemo2[0],\n includedEnd = _React$useMemo2[1];\n\n // ============================= Refs =============================\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n handlesRef.current.focus(0);\n },\n blur: function blur() {\n var _document = document,\n activeElement = _document.activeElement;\n if (containerRef.current.contains(activeElement)) {\n activeElement === null || activeElement === void 0 || activeElement.blur();\n }\n }\n };\n });\n\n // ========================== Auto Focus ==========================\n React.useEffect(function () {\n if (autoFocus) {\n handlesRef.current.focus(0);\n }\n }, []);\n\n // =========================== Context ============================\n var context = React.useMemo(function () {\n return {\n min: mergedMin,\n max: mergedMax,\n direction: direction,\n disabled: disabled,\n keyboard: keyboard,\n step: mergedStep,\n included: included,\n includedStart: includedStart,\n includedEnd: includedEnd,\n range: range,\n tabIndex: tabIndex,\n ariaLabelForHandle: ariaLabelForHandle,\n ariaLabelledByForHandle: ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle: ariaValueTextFormatterForHandle,\n styles: styles || {},\n classNames: classNames || {}\n };\n }, [mergedMin, mergedMax, direction, disabled, keyboard, mergedStep, included, includedStart, includedEnd, range, tabIndex, ariaLabelForHandle, ariaLabelledByForHandle, ariaValueTextFormatterForHandle, styles, classNames]);\n\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(SliderContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: containerRef,\n className: cls(prefixCls, className, (_cls = {}, _defineProperty(_cls, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_cls, \"\".concat(prefixCls, \"-vertical\"), vertical), _defineProperty(_cls, \"\".concat(prefixCls, \"-horizontal\"), !vertical), _defineProperty(_cls, \"\".concat(prefixCls, \"-with-marks\"), markList.length), _cls)),\n style: style,\n onMouseDown: onSliderMouseDown\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: cls(\"\".concat(prefixCls, \"-rail\"), classNames === null || classNames === void 0 ? void 0 : classNames.rail),\n style: _objectSpread(_objectSpread({}, railStyle), styles === null || styles === void 0 ? void 0 : styles.rail)\n }), /*#__PURE__*/React.createElement(Tracks, {\n prefixCls: prefixCls,\n style: trackStyle,\n values: sortedCacheValues,\n startPoint: startPoint,\n onStartMove: mergedDraggableTrack ? onStartMove : null\n }), /*#__PURE__*/React.createElement(Steps, {\n prefixCls: prefixCls,\n marks: markList,\n dots: dots,\n style: dotStyle,\n activeStyle: activeDotStyle\n }), /*#__PURE__*/React.createElement(Handles, {\n ref: handlesRef,\n prefixCls: prefixCls,\n style: handleStyle,\n values: cacheValues,\n draggingIndex: draggingIndex,\n onStartMove: onStartMove,\n onOffsetChange: onHandleOffsetChange,\n onFocus: onFocus,\n onBlur: onBlur,\n handleRender: handleRender,\n onChangeComplete: finishChange\n }), /*#__PURE__*/React.createElement(Marks, {\n prefixCls: prefixCls,\n marks: markList,\n onClick: changeToCloseValue\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Slider.displayName = 'Slider';\n}\nexport default Slider;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\n\n/** Format the value in the range of [min, max] */\n\n/** Format value align with step */\n\n/** Format value align with step & marks */\n\nexport default function useOffset(min, max, step, markList, allowCross, pushable) {\n var formatRangeValue = React.useCallback(function (val) {\n var formatNextValue = isFinite(val) ? val : min;\n formatNextValue = Math.min(max, val);\n formatNextValue = Math.max(min, formatNextValue);\n return formatNextValue;\n }, [min, max]);\n var formatStepValue = React.useCallback(function (val) {\n if (step !== null) {\n var stepValue = min + Math.round((formatRangeValue(val) - min) / step) * step;\n\n // Cut number in case to be like 0.30000000000000004\n var getDecimal = function getDecimal(num) {\n return (String(num).split('.')[1] || '').length;\n };\n var maxDecimal = Math.max(getDecimal(step), getDecimal(max), getDecimal(min));\n var fixedValue = Number(stepValue.toFixed(maxDecimal));\n return min <= fixedValue && fixedValue <= max ? fixedValue : null;\n }\n return null;\n }, [step, min, max, formatRangeValue]);\n var formatValue = React.useCallback(function (val) {\n var formatNextValue = formatRangeValue(val);\n\n // List align values\n var alignValues = markList.map(function (mark) {\n return mark.value;\n });\n if (step !== null) {\n alignValues.push(formatStepValue(val));\n }\n\n // min & max\n alignValues.push(min, max);\n\n // Align with marks\n var closeValue = alignValues[0];\n var closeDist = max - min;\n alignValues.forEach(function (alignValue) {\n var dist = Math.abs(formatNextValue - alignValue);\n if (dist <= closeDist) {\n closeValue = alignValue;\n closeDist = dist;\n }\n });\n return closeValue;\n }, [min, max, markList, step, formatRangeValue, formatStepValue]);\n\n // ========================== Offset ==========================\n // Single Value\n var offsetValue = function offsetValue(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n if (typeof offset === 'number') {\n var nextValue;\n var originValue = values[valueIndex];\n\n // Only used for `dist` mode\n var targetDistValue = originValue + offset;\n\n // Compare next step value & mark value which is best match\n var potentialValues = [];\n markList.forEach(function (mark) {\n potentialValues.push(mark.value);\n });\n\n // Min & Max\n potentialValues.push(min, max);\n\n // In case origin value is align with mark but not with step\n potentialValues.push(formatStepValue(originValue));\n\n // Put offset step value also\n var sign = offset > 0 ? 1 : -1;\n if (mode === 'unit') {\n potentialValues.push(formatStepValue(originValue + sign * step));\n } else {\n potentialValues.push(formatStepValue(targetDistValue));\n }\n\n // Find close one\n potentialValues = potentialValues.filter(function (val) {\n return val !== null;\n })\n // Remove reverse value\n .filter(function (val) {\n return offset < 0 ? val <= originValue : val >= originValue;\n });\n if (mode === 'unit') {\n // `unit` mode can not contain itself\n potentialValues = potentialValues.filter(function (val) {\n return val !== originValue;\n });\n }\n var compareValue = mode === 'unit' ? originValue : targetDistValue;\n nextValue = potentialValues[0];\n var valueDist = Math.abs(nextValue - compareValue);\n potentialValues.forEach(function (potentialValue) {\n var dist = Math.abs(potentialValue - compareValue);\n if (dist < valueDist) {\n nextValue = potentialValue;\n valueDist = dist;\n }\n });\n\n // Out of range will back to range\n if (nextValue === undefined) {\n return offset < 0 ? min : max;\n }\n\n // `dist` mode\n if (mode === 'dist') {\n return nextValue;\n }\n\n // `unit` mode may need another round\n if (Math.abs(offset) > 1) {\n var cloneValues = _toConsumableArray(values);\n cloneValues[valueIndex] = nextValue;\n return offsetValue(cloneValues, offset - sign, valueIndex, mode);\n }\n return nextValue;\n } else if (offset === 'min') {\n return min;\n } else if (offset === 'max') {\n return max;\n }\n };\n\n /** Same as `offsetValue` but return `changed` mark to tell value changed */\n var offsetChangedValue = function offsetChangedValue(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n var originValue = values[valueIndex];\n var nextValue = offsetValue(values, offset, valueIndex, mode);\n return {\n value: nextValue,\n changed: nextValue !== originValue\n };\n };\n var needPush = function needPush(dist) {\n return pushable === null && dist === 0 || typeof pushable === 'number' && dist < pushable;\n };\n\n // Values\n var offsetValues = function offsetValues(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n var nextValues = values.map(formatValue);\n var originValue = nextValues[valueIndex];\n var nextValue = offsetValue(nextValues, offset, valueIndex, mode);\n nextValues[valueIndex] = nextValue;\n if (allowCross === false) {\n // >>>>> Allow Cross\n var pushNum = pushable || 0;\n\n // ============ AllowCross ===============\n if (valueIndex > 0 && nextValues[valueIndex - 1] !== originValue) {\n nextValues[valueIndex] = Math.max(nextValues[valueIndex], nextValues[valueIndex - 1] + pushNum);\n }\n if (valueIndex < nextValues.length - 1 && nextValues[valueIndex + 1] !== originValue) {\n nextValues[valueIndex] = Math.min(nextValues[valueIndex], nextValues[valueIndex + 1] - pushNum);\n }\n } else if (typeof pushable === 'number' || pushable === null) {\n // >>>>> Pushable\n // =============== Push ==================\n\n // >>>>>> Basic push\n // End values\n for (var i = valueIndex + 1; i < nextValues.length; i += 1) {\n var changed = true;\n while (needPush(nextValues[i] - nextValues[i - 1]) && changed) {\n var _offsetChangedValue = offsetChangedValue(nextValues, 1, i);\n nextValues[i] = _offsetChangedValue.value;\n changed = _offsetChangedValue.changed;\n }\n }\n\n // Start values\n for (var _i = valueIndex; _i > 0; _i -= 1) {\n var _changed = true;\n while (needPush(nextValues[_i] - nextValues[_i - 1]) && _changed) {\n var _offsetChangedValue2 = offsetChangedValue(nextValues, -1, _i - 1);\n nextValues[_i - 1] = _offsetChangedValue2.value;\n _changed = _offsetChangedValue2.changed;\n }\n }\n\n // >>>>> Revert back to safe push range\n // End to Start\n for (var _i2 = nextValues.length - 1; _i2 > 0; _i2 -= 1) {\n var _changed2 = true;\n while (needPush(nextValues[_i2] - nextValues[_i2 - 1]) && _changed2) {\n var _offsetChangedValue3 = offsetChangedValue(nextValues, -1, _i2 - 1);\n nextValues[_i2 - 1] = _offsetChangedValue3.value;\n _changed2 = _offsetChangedValue3.changed;\n }\n }\n\n // Start to End\n for (var _i3 = 0; _i3 < nextValues.length - 1; _i3 += 1) {\n var _changed3 = true;\n while (needPush(nextValues[_i3 + 1] - nextValues[_i3]) && _changed3) {\n var _offsetChangedValue4 = offsetChangedValue(nextValues, 1, _i3 + 1);\n nextValues[_i3 + 1] = _offsetChangedValue4.value;\n _changed3 = _offsetChangedValue4.changed;\n }\n }\n }\n return {\n value: nextValues[valueIndex],\n values: nextValues\n };\n };\n return [formatValue, offsetValues];\n}","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// 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 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 Slider from \"./Slider\";\nexport default Slider;","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n try {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n } catch (e) {\n return typeof fn === \"function\";\n }\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\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: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n reloadDocument?: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\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\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs):\n | Promise\n | DataFunctionValue;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs):\n | Promise\n | DataFunctionValue;\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 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\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;\n action?: ActionFunction;\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 matches = matchRouteBranch(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\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] = safelyDecodeURIComponent(value || \"\", paramName);\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(/\\/:(\\w+)(\\?)?/g, (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\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 safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\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/**\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 if (isPathRelative) {\n let fromSegments = routePathnames[routePathnames.length - 1]\n .replace(/^\\//, \"\")\n .split(\"/\");\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // With relative=\"path\", each leading .. segment means \"go up one URL segment\"\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n fromSegments.pop();\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = \"/\" + fromSegments.join(\"/\");\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\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 while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\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 arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import 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 ActionFunction,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n AgnosticRouteObject,\n DataResult,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n ImmutableRouteKey,\n LoaderFunction,\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 immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * 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_prependBasename: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\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?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\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\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\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 // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_prependBasename: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\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 =\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n !initialMatches.some((m) => m.route.lazy) &&\n // And we have to either have no loaders or have been provided hydrationData\n (!initialMatches.some((m) => m.route.loader) || init.hydrationData != null);\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // 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 }\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 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 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 pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n flushSync,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; 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 result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n flushSync?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\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 isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { 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 (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n 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 { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // 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 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 actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, 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 if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n 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 result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n if (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(state, 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 state: RouterState,\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.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true,\n });\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.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(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { 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.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\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 async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function 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 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\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(\n `${method}() call aborted: ${request.method} ${request.url}`\n );\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(\n `${method}() call aborted: ${request.method} ${request.url}`\n );\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 pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: 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 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 getPathContributingMatches(contextualMatches).map((m) => m.pathnameBase),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: 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 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 pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (match.route.loader == null) {\n return false;\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate if fetcher won't be present in the subsequent render\n if (\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 defaultShouldRevalidate: isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: 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\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = 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) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse: QueryRouteResponse = {\n type:\n resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result,\n };\n throw queryRouteResponse;\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\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\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\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 isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || obj.type === ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\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 errorElement?: React.ReactNode | null;\n Component?: 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 errorElement?: React.ReactNode | null;\n Component?: 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 extends NavigationContextObject {\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}\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_getPathContributingMatches as getPathContributingMatches,\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, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(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 { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` 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): 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 let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \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 || state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n \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): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement: React.ReactNode | null = null;\n if (dataRouterState) {\n errorElement = match.route.errorElement || defaultErrorElement;\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` 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) {\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_getPathContributingMatches as getPathContributingMatches,\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_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\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 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