{"version":3,"file":"static/js/main.dbf864a3.js","mappings":"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ACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,QACA,KACA,QACA,IACA,KACA,MACA,QACA,MAEA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,OACA,SFxHkC,CAClCvb,oBFOK,SAA6B9nL,EAAoBQ,GACtD,IAAKR,EAASmnB,WAAannB,EAASioD,aAClC,OAAO,EAGT,MAAMq7I,EACkB,WAAtBtjM,EAASipH,UACRjpH,EAASixE,YAA+C,WAAjCjxE,EAASixE,WAAWg4C,UAExC,MAAE9+G,EAAA,SAAOw8F,EAAA,UAAUy7B,EAAA,WAAWD,EAAA,QAAYohE,KAAYlhJ,GAC1D7hD,EAEIyH,EAASlT,OAAOkT,OAAOo6C,GACvB72C,EAAQzW,OAAO0D,KAAK4pD,GAAY5sD,KAAIkB,GACxC2sM,GAAmBtjM,EAASwjM,aAAa7sM,GACrCA,EACA0jM,GAAe1jM,KACd0jM,GAAe1jM,GAAQA,EAAKwxC,QAC3B,YAEA1wC,GAAK,IAAMA,EAAEohB,wBAIJ,IAAb8tF,IACF3mG,EAASkyE,YAAcy0B,GAIzB,IAAK,MAAMhwG,KAAQwT,EACjB,GAAIA,EAAM5L,eAAe5H,GAAO,CAC9B,MAAML,EAAQ6jM,GAAoBxjM,EAAMwT,EAAMxT,IAC1CujM,GAAenuL,KAAKpV,GACtBqJ,EAASmK,MAAMkkH,YAAY13H,EAAML,GAEjC0J,EAASmK,MAAMxT,GAAQL,CAE3B,CAIFkV,EAAMvW,SAAQ,CAAC0B,EAAM8J,KACnBT,EAASioD,aAAatxD,EAAMsR,EAAOxH,GAAG,SAGtB,IAAd2hI,IACFpiI,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","sources":["../../../node_modules/@redux-saga/core/dist/io-22ea0cf9.js","../../../node_modules/@redux-saga/is/dist/redux-saga-is.esm.js","../../../node_modules/@redux-saga/symbols/dist/redux-saga-symbols.esm.js","../../../node_modules/@supabase/node-fetch/browser.js","../../../node_modules/babel-runtime/core-js/object/assign.js","../../../node_modules/babel-runtime/core-js/object/create.js","../../../node_modules/babel-runtime/core-js/object/define-property.js","../../../node_modules/babel-runtime/core-js/object/get-prototype-of.js","../../../node_modules/babel-runtime/core-js/object/set-prototype-of.js","../../../node_modules/babel-runtime/core-js/symbol.js","../../../node_modules/babel-runtime/core-js/symbol/iterator.js","../../../node_modules/babel-runtime/helpers/classCallCheck.js","../../../node_modules/babel-runtime/helpers/createClass.js","../../../node_modules/babel-runtime/helpers/extends.js","../../../node_modules/babel-runtime/helpers/inherits.js","../../../node_modules/babel-runtime/helpers/possibleConstructorReturn.js","../../../node_modules/babel-runtime/helpers/typeof.js","../../../node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js","../../../node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js","../../../node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js","../../../node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-prototype-of.js","../../../node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js","../../../node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js","../../../node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-prototype-of.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js","../../../node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js","../../../node_modules/color-convert/conversions.js","../../../node_modules/color-convert/index.js","../../../node_modules/color-convert/route.js","../../../node_modules/color-name/index.js","../../../node_modules/color-string/index.js","../../../node_modules/color/index.js","../../../node_modules/direction/index.js","../../../node_modules/immutable/dist/immutable.es.js","../../../node_modules/is-hotkey/lib/index.js","../../../node_modules/lodash/_Symbol.js","../../../node_modules/lodash/_baseGetTag.js","../../../node_modules/lodash/_baseTrim.js","../../../node_modules/lodash/_freeGlobal.js","../../../node_modules/lodash/_getRawTag.js","../../../node_modules/lodash/_objectToString.js","../../../node_modules/lodash/_root.js","../../../node_modules/lodash/_trimmedEndIndex.js","../../../node_modules/lodash/debounce.js","../../../node_modules/lodash/isObject.js","../../../node_modules/lodash/isObjectLike.js","../../../node_modules/lodash/isSymbol.js","../../../node_modules/lodash/now.js","../../../node_modules/lodash/throttle.js","../../../node_modules/lodash/toNumber.js","../../../node_modules/lottie-web/build/player/lottie.js","../../../node_modules/picocolors/picocolors.browser.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-lottie/dist/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/@redux-saga/core/dist/redux-saga-effects.esm.js","../../../node_modules/scheduler/cjs/scheduler.production.min.js","../../../node_modules/scheduler/index.js","../../../node_modules/simple-swizzle/index.js","../../../node_modules/simple-swizzle/node_modules/is-arrayish/index.js","../../../node_modules/tailwindcss/colors.js","../../../node_modules/tailwindcss/lib/public/colors.js","../../../node_modules/tailwindcss/lib/util/log.js","../../../node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.min.js","../../../node_modules/use-sync-external-store/with-selector.js","../../../node_modules/uuid/index.js","../../../node_modules/uuid/lib/bytesToUuid.js","../../../node_modules/uuid/lib/rng-browser.js","../../../node_modules/uuid/v1.js","../../../node_modules/uuid/v4.js","../../store/src/action.ts","../../store/src/actions/app/index.ts","../../store/src/actions/auth/index.ts","../../store/src/records/campus.ts","../../store/src/records/term.ts","../../records/src/account.ts","../../records/src/campus.ts","../../records/src/auth.ts","../../records/src/index.ts","../../store/src/reducers/app.ts","../../store/src/utils.ts","../../store/src/reducers/map.ts","../../store/src/reducers/record.ts","../../store/src/reducers/tables.ts","../../store/src/tables.ts","../../store/src/reducers/index.ts","../../store/src/sagas/app.ts","../../store/src/sagas/auth.ts","../../store/src/sagas/tables.ts","../../../node_modules/classnames/index.js","../../../node_modules/@redux-saga/core/node_modules/@babel/runtime/helpers/esm/extends.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../../../node_modules/@remix-run/router/history.ts","../../../node_modules/@remix-run/router/utils.ts","../../../node_modules/@remix-run/router/router.ts","../../../node_modules/react-router/lib/context.ts","../../../node_modules/react-router/lib/hooks.tsx","../../../node_modules/react-router/lib/components.tsx","../../../node_modules/react-router-dom/dom.ts","../../../node_modules/react-router-dom/index.tsx","Theme/palette.ts","../../../node_modules/react-redux/src/utils/react.ts","../../../node_modules/react-redux/src/components/Context.ts","../../../node_modules/react-redux/src/utils/useSyncExternalStore.ts","../../../node_modules/react-redux/src/hooks/useReduxContext.ts","../../../node_modules/react-redux/src/hooks/useSelector.ts","../../../node_modules/react-redux/src/utils/react-is.ts","../../../node_modules/react-redux/src/utils/batch.ts","../../../node_modules/react-redux/src/utils/Subscription.ts","../../../node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.ts","../../../node_modules/react-redux/src/utils/hoistStatics.ts","../../../node_modules/react-redux/src/components/Provider.tsx","../../../node_modules/react-redux/src/hooks/useStore.ts","../../../node_modules/react-redux/src/hooks/useDispatch.ts","../../../node_modules/react-redux/src/index.ts","../../../node_modules/react-redux/src/components/connect.tsx","Soon/index.tsx","../../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../node_modules/redux/es/redux.js","../../../node_modules/@redux-saga/deferred/dist/redux-saga-deferred.esm.js","../../../node_modules/@redux-saga/core/dist/redux-saga-core.esm.js","../../../node_modules/@redux-saga/core/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../node_modules/redux-saga/dist/redux-saga-core-npm-proxy.esm.js","../../store/src/sagas/index.ts","../../store/src/hooks/index.ts","../../store/src/hooks/tables.ts","../../store/src/index.ts","Auth/index.tsx","../../../node_modules/@react-spring/shared/src/globals.ts","../../../node_modules/@react-spring/rafz/src/index.ts","../../../node_modules/@react-spring/shared/src/helpers.ts","../../../node_modules/@react-spring/shared/src/FrameLoop.ts","../../../node_modules/@react-spring/shared/src/clamp.ts","../../../node_modules/@react-spring/shared/src/colorMatchers.ts","../../../node_modules/@react-spring/shared/src/normalizeColor.ts","../../../node_modules/@react-spring/shared/src/colorToRgba.ts","../../../node_modules/@react-spring/shared/src/createInterpolator.ts","../../../node_modules/@react-spring/shared/src/easings.ts","../../../node_modules/@react-spring/shared/src/fluids.ts","../../../node_modules/@react-spring/shared/src/stringInterpolation.ts","../../../node_modules/@react-spring/shared/src/regexs.ts","../../../node_modules/@react-spring/shared/src/variableToRgba.ts","../../../node_modules/@react-spring/shared/src/deprecations.ts","../../../node_modules/@react-spring/shared/src/isAnimatedString.ts","../../../node_modules/@react-spring/shared/src/hooks/useIsomorphicLayoutEffect.ts","../../../node_modules/@react-spring/shared/src/hooks/useIsMounted.ts","../../../node_modules/@react-spring/shared/src/hooks/useForceUpdate.ts","../../../node_modules/@react-spring/shared/src/hooks/useOnce.ts","../../../node_modules/@react-spring/shared/src/hooks/useReducedMotion.ts","../../../node_modules/@react-spring/animated/src/Animated.ts","../../../node_modules/@react-spring/animated/src/AnimatedValue.ts","../../../node_modules/@react-spring/animated/src/AnimatedString.ts","../../../node_modules/@react-spring/animated/src/context.ts","../../../node_modules/@react-spring/animated/src/AnimatedObject.ts","../../../node_modules/@react-spring/animated/src/AnimatedArray.ts","../../../node_modules/@react-spring/animated/src/getAnimatedType.ts","../../../node_modules/@react-spring/animated/src/withAnimated.tsx","../../../node_modules/@react-spring/animated/src/createHost.ts","../../../node_modules/@react-spring/core/src/helpers.ts","../../../node_modules/@react-spring/core/src/constants.ts","../../../node_modules/@react-spring/core/src/AnimationConfig.ts","../../../node_modules/@react-spring/core/src/Animation.ts","../../../node_modules/@react-spring/core/src/scheduleProps.ts","../../../node_modules/@react-spring/core/src/AnimationResult.ts","../../../node_modules/@react-spring/core/src/runAsync.ts","../../../node_modules/@react-spring/core/src/FrameValue.ts","../../../node_modules/@react-spring/core/src/SpringPhase.ts","../../../node_modules/@react-spring/core/src/SpringValue.ts","../../../node_modules/@react-spring/core/src/Controller.ts","../../../node_modules/@react-spring/core/src/SpringContext.tsx","../../../node_modules/@react-spring/shared/src/hooks/useMemoOne.ts","../../../node_modules/@react-spring/core/src/SpringRef.ts","../../../node_modules/@react-spring/core/src/hooks/useTransition.tsx","../../../node_modules/@react-spring/shared/src/hooks/usePrev.ts","../../../node_modules/@react-spring/core/src/Interpolation.ts","../../../node_modules/@react-spring/core/src/globals.ts","../../../node_modules/@react-spring/web/src/applyAnimatedValues.ts","../../../node_modules/@react-spring/web/src/AnimatedStyle.ts","../../../node_modules/@react-spring/web/src/index.ts","../../../node_modules/@react-spring/shared/src/colors.ts","../../../node_modules/@react-spring/web/src/primitives.ts","../../ui/src/Drawer/Drawer.tsx","../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../ui/src/Popover/Popover.tsx","../../../node_modules/is-plain-object/dist/is-plain-object.mjs","../../../node_modules/immer/src/utils/env.ts","../../../node_modules/immer/src/utils/errors.ts","../../../node_modules/immer/src/utils/common.ts","../../../node_modules/immer/src/utils/plugins.ts","../../../node_modules/immer/src/core/scope.ts","../../../node_modules/immer/src/core/finalize.ts","../../../node_modules/immer/src/core/proxy.ts","../../../node_modules/immer/src/core/immerClass.ts","../../../node_modules/immer/src/core/current.ts","../../../node_modules/immer/src/immer.ts","../../../node_modules/slate/src/interfaces/path-ref.ts","../../../node_modules/slate/src/interfaces/point-ref.ts","../../../node_modules/slate/src/interfaces/range-ref.ts","../../../node_modules/slate/src/utils/weak-maps.ts","../../../node_modules/slate/src/interfaces/path.ts","../../../../../../.yarn/berry/cache/@babel-runtime-npm-7.23.2-d013d6cf7e-10.zip/node_modules/@babel/runtime/helpers/esm/typeof.js","../../../../../../.yarn/berry/cache/@babel-runtime-npm-7.23.2-d013d6cf7e-10.zip/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../../../../.yarn/berry/cache/@babel-runtime-npm-7.23.2-d013d6cf7e-10.zip/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../../../../.yarn/berry/cache/@babel-runtime-npm-7.23.2-d013d6cf7e-10.zip/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../node_modules/slate/src/interfaces/transforms/general.ts","../../../node_modules/slate/src/interfaces/transforms/node.ts","../../../node_modules/slate/src/interfaces/transforms/selection.ts","../../../node_modules/slate/src/utils/deep-equal.ts","../../../../../../.yarn/berry/cache/@babel-runtime-npm-7.23.2-d013d6cf7e-10.zip/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../../../../../.yarn/berry/cache/@babel-runtime-npm-7.23.2-d013d6cf7e-10.zip/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../node_modules/slate/src/interfaces/range.ts","../../../node_modules/slate/src/interfaces/element.ts","../../../node_modules/slate/src/interfaces/node.ts","../../../node_modules/slate/src/interfaces/operation.ts","../../../node_modules/slate/src/editor/is-editor.ts","../../../node_modules/slate/src/interfaces/editor.ts","../../../node_modules/slate/src/interfaces/location.ts","../../../node_modules/slate/src/interfaces/point.ts","../../../node_modules/slate/src/interfaces/scrubber.ts","../../../node_modules/slate/src/interfaces/text.ts","../../../node_modules/slate/src/utils/string.ts","../../../node_modules/slate/src/utils/get-default-insert-location.ts","../../../node_modules/slate/src/utils/match-path.ts","../../../node_modules/slate/src/interfaces/transforms/text.ts","../../../node_modules/slate/src/interfaces/transforms/index.ts","../../../node_modules/slate/src/core/batch-dirty-paths.ts","../../../node_modules/slate/src/core/update-dirty-paths.ts","../../../node_modules/slate/src/core/apply.ts","../../../node_modules/slate/src/editor/insert-text.ts","../../../node_modules/slate/src/editor/normalize.ts","../../../node_modules/slate/src/editor/positions.ts","../../../node_modules/slate/src/editor/remove-mark.ts","../../../node_modules/slate/src/transforms-selection/set-point.ts","../../../node_modules/slate/src/transforms-node/insert-nodes.ts","../../../node_modules/slate/src/transforms-node/merge-nodes.ts","../../../node_modules/slate/src/transforms-node/split-nodes.ts","../../../node_modules/slate/src/transforms-node/wrap-nodes.ts","../../../node_modules/slate/src/create-editor.ts","../../../node_modules/slate/src/editor/add-mark.ts","../../../node_modules/slate/src/editor/delete-backward.ts","../../../node_modules/slate/src/editor/delete-forward.ts","../../../node_modules/slate/src/editor/delete-fragment.ts","../../../node_modules/slate/src/core/get-fragment.ts","../../../node_modules/slate/src/editor/insert-break.ts","../../../node_modules/slate/src/editor/insert-soft-break.ts","../../../node_modules/slate/src/transforms-text/insert-fragment.ts","../../../node_modules/slate/src/editor/insert-node.ts","../../../node_modules/slate/src/core/normalize-node.ts","../../../node_modules/slate/src/core/get-dirty-paths.ts","../../../node_modules/slate/src/core/should-normalize.ts","../../../node_modules/slate/src/editor/above.ts","../../../node_modules/slate/src/editor/after.ts","../../../node_modules/slate/src/editor/before.ts","../../../node_modules/slate/src/transforms-selection/collapse.ts","../../../node_modules/slate/src/transforms-text/delete-text.ts","../../../node_modules/slate/src/transforms-selection/deselect.ts","../../../node_modules/slate/src/editor/edges.ts","../../../node_modules/slate/src/editor/element-read-only.ts","../../../node_modules/slate/src/editor/end.ts","../../../node_modules/slate/src/editor/first.ts","../../../node_modules/slate/src/editor/fragment.ts","../../../node_modules/slate/src/editor/marks.ts","../../../node_modules/slate/src/editor/has-blocks.ts","../../../node_modules/slate/src/editor/has-inlines.ts","../../../node_modules/slate/src/editor/has-path.ts","../../../node_modules/slate/src/editor/has-texts.ts","../../../node_modules/slate/src/editor/is-block.ts","../../../node_modules/slate/src/editor/is-edge.ts","../../../node_modules/slate/src/editor/is-empty.ts","../../../node_modules/slate/src/editor/is-end.ts","../../../node_modules/slate/src/editor/is-normalizing.ts","../../../node_modules/slate/src/editor/is-start.ts","../../../node_modules/slate/src/editor/last.ts","../../../node_modules/slate/src/editor/leaf.ts","../../../node_modules/slate/src/editor/levels.ts","../../../node_modules/slate/src/transforms-node/lift-nodes.ts","../../../node_modules/slate/src/transforms-selection/move.ts","../../../node_modules/slate/src/transforms-node/move-nodes.ts","../../../node_modules/slate/src/editor/next.ts","../../../node_modules/slate/src/editor/node.ts","../../../node_modules/slate/src/editor/nodes.ts","../../../node_modules/slate/src/editor/parent.ts","../../../node_modules/slate/src/editor/path.ts","../../../node_modules/slate/src/editor/path-ref.ts","../../../node_modules/slate/src/editor/path-refs.ts","../../../node_modules/slate/src/editor/point.ts","../../../node_modules/slate/src/editor/point-ref.ts","../../../node_modules/slate/src/editor/point-refs.ts","../../../node_modules/slate/src/editor/previous.ts","../../../node_modules/slate/src/editor/range.ts","../../../node_modules/slate/src/editor/range-ref.ts","../../../node_modules/slate/src/editor/range-refs.ts","../../../node_modules/slate/src/transforms-node/remove-nodes.ts","../../../node_modules/slate/src/transforms-selection/select.ts","../../../node_modules/slate/src/transforms-node/set-nodes.ts","../../../node_modules/slate/src/editor/set-normalizing.ts","../../../node_modules/slate/src/transforms-selection/set-selection.ts","../../../node_modules/slate/src/editor/start.ts","../../../node_modules/slate/src/editor/string.ts","../../../node_modules/slate/src/editor/unhang-range.ts","../../../node_modules/slate/src/transforms-node/unset-nodes.ts","../../../node_modules/slate/src/transforms-node/unwrap-nodes.ts","../../../node_modules/slate/src/editor/get-void.ts","../../../node_modules/slate/src/editor/without-normalizing.ts","../../../node_modules/compute-scroll-into-view/src/index.ts","../../../node_modules/scroll-into-view-if-needed/src/index.ts","../../../node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../../../node_modules/@juggle/resize-observer/lib/utils/freeze.js","../../../node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../../../node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../../../node_modules/@juggle/resize-observer/lib/utils/element.js","../../../node_modules/@juggle/resize-observer/lib/utils/global.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../../../node_modules/@juggle/resize-observer/lib/utils/process.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../../../node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../../../node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../../../node_modules/slate-react/src/hooks/use-slate-static.tsx","../../../node_modules/slate-react/src/utils/environment.ts","../../../node_modules/slate-react/src/utils/weak-maps.ts","../../../node_modules/slate-react/src/utils/dom.ts","../../../node_modules/slate-react/src/utils/key.ts","../../../node_modules/slate-react/src/plugin/react-editor.ts","../../../node_modules/slate-react/src/utils/diff-text.ts","../../../node_modules/slate-react/src/hooks/android-input-manager/android-input-manager.ts","../../../node_modules/slate-react/src/hooks/use-isomorphic-layout-effect.ts","../../../node_modules/slate-react/src/hooks/android-input-manager/use-android-input-manager.ts","../../../node_modules/slate-react/src/hooks/use-is-mounted.tsx","../../../node_modules/slate-react/src/hooks/use-mutation-observer.ts","../../../node_modules/slate-react/src/utils/range-list.ts","../../../node_modules/slate-react/src/components/string.tsx","../../../node_modules/slate-react/src/components/leaf.tsx","../../../node_modules/slate-react/src/components/text.tsx","../../../node_modules/slate-react/src/components/element.tsx","../../../node_modules/slate-react/src/hooks/use-decorate.ts","../../../node_modules/slate-react/src/hooks/use-selected.ts","../../../node_modules/slate-react/src/hooks/use-children.tsx","../../../node_modules/slate-react/src/hooks/use-read-only.ts","../../../node_modules/slate-react/src/hooks/use-slate.tsx","../../../node_modules/slate-react/src/utils/constants.ts","../../../node_modules/slate-react/src/utils/hotkeys.ts","../../../node_modules/slate-react/src/components/restore-dom/restore-dom.tsx","../../../node_modules/slate-react/src/components/restore-dom/restore-dom-manager.ts","../../../node_modules/slate-react/src/components/editable.tsx","../../../node_modules/slate-react/src/hooks/use-track-user-input.ts","../../../node_modules/slate-react/src/hooks/use-focused.ts","../../../node_modules/slate-react/src/hooks/use-slate-selector.tsx","../../../node_modules/slate-react/src/components/slate.tsx","../../../node_modules/slate-react/src/utils/lines.ts","../../../node_modules/slate-react/src/plugin/with-react.ts","../../ui/src/Textarea/Textarea.tsx","../../ui/src/Textarea/utils.ts","../../ui/src/Textarea/Input.tsx","../../ui/src/Textarea/index.ts","../../../node_modules/react-icons/lib/iconsManifest.mjs","../../../node_modules/react-icons/lib/iconContext.mjs","../../../node_modules/react-icons/lib/iconBase.mjs","../../ui/src/Icon/Editor.tsx","../../../node_modules/react-icons/md/index.mjs","../../../node_modules/react-icons/tb/index.mjs","../../../node_modules/react-icons/lu/index.mjs","../../ui/src/Icon/index.tsx","../../../node_modules/react-icons/ri/index.mjs","../../../node_modules/react-icons/pi/index.mjs","../../../node_modules/react-icons/fa6/index.mjs","../../../node_modules/react-icons/gi/index.mjs","../../../node_modules/react-icons/bs/index.mjs","../../../node_modules/react-icons/gr/index.mjs","../../ui/src/hooks/breakpoints.ts","../../ui/src/hooks/index.ts","Layout/context.ts","Layout/Header.tsx","Layout/Sidebar.tsx","pages/Courses/Course.tsx","pages/Courses/index.tsx","pages/Dashboard/index.tsx","pages/Calendar/Mobile.tsx","pages/Instructor/Mobile.tsx","Router/index.tsx","pages/index.ts","Layout/index.tsx","../../client/src/table.ts","../../client/src/tables/public.ts","../../client/src/tables/campus.ts","../../client/src/tables/campus_views.ts","../../client/src/tables/account.ts","../../client/src/index.ts","../../client/src/client.ts","../node_modules/@supabase/functions-js/src/types.ts","../node_modules/@supabase/functions-js/src/FunctionsClient.ts","../node_modules/@supabase/functions-js/src/helper.ts","../node_modules/@supabase/postgrest-js/src/PostgrestError.ts","../node_modules/@supabase/postgrest-js/src/PostgrestBuilder.ts","../node_modules/@supabase/postgrest-js/src/PostgrestTransformBuilder.ts","../node_modules/@supabase/postgrest-js/src/PostgrestFilterBuilder.ts","../node_modules/@supabase/postgrest-js/src/PostgrestQueryBuilder.ts","../node_modules/@supabase/postgrest-js/src/version.ts","../node_modules/@supabase/postgrest-js/src/constants.ts","../node_modules/@supabase/postgrest-js/src/PostgrestClient.ts","../node_modules/@supabase/realtime-js/src/lib/version.ts","../node_modules/@supabase/realtime-js/src/lib/constants.ts","../node_modules/@supabase/realtime-js/src/RealtimePresence.ts","../node_modules/@supabase/realtime-js/src/lib/transformers.ts","../node_modules/@supabase/realtime-js/src/lib/timer.ts","../node_modules/@supabase/realtime-js/src/lib/serializer.ts","../node_modules/@supabase/realtime-js/src/lib/push.ts","../node_modules/@supabase/realtime-js/src/RealtimeChannel.ts","../node_modules/@supabase/realtime-js/src/RealtimeClient.ts","../node_modules/@supabase/storage-js/src/lib/errors.ts","../node_modules/@supabase/storage-js/src/lib/helpers.ts","../node_modules/@supabase/storage-js/src/lib/fetch.ts","../node_modules/@supabase/storage-js/src/packages/StorageFileApi.ts","../node_modules/@supabase/storage-js/src/lib/version.ts","../node_modules/@supabase/storage-js/src/lib/constants.ts","../node_modules/@supabase/storage-js/src/packages/StorageBucketApi.ts","../node_modules/@supabase/storage-js/src/StorageClient.ts","../node_modules/@supabase/supabase-js/src/lib/constants.ts","../node_modules/@supabase/supabase-js/src/lib/version.ts","../node_modules/@supabase/supabase-js/src/lib/fetch.ts","../../../node_modules/@supabase/gotrue-js/src/lib/helpers.ts","../../../node_modules/@supabase/gotrue-js/src/lib/errors.ts","../../../node_modules/@supabase/gotrue-js/src/lib/fetch.ts","../../../node_modules/@supabase/gotrue-js/src/GoTrueAdminApi.ts","../../../node_modules/@supabase/gotrue-js/src/lib/version.ts","../../../node_modules/@supabase/gotrue-js/src/lib/constants.ts","../../../node_modules/@supabase/gotrue-js/src/lib/local-storage.ts","../../../node_modules/@supabase/gotrue-js/src/lib/locks.ts","../../../node_modules/@supabase/gotrue-js/src/lib/polyfills.ts","../../../node_modules/@supabase/gotrue-js/src/GoTrueClient.ts","../node_modules/@supabase/supabase-js/src/lib/SupabaseAuthClient.ts","../node_modules/@supabase/supabase-js/src/SupabaseClient.ts","../node_modules/@supabase/supabase-js/src/lib/helpers.ts","../node_modules/@supabase/supabase-js/src/index.ts","client.ts","App.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":["import { TASK_CANCEL, TERMINATE, SAGA_LOCATION, SAGA_ACTION, IO, SELF_CANCELLATION } from '@redux-saga/symbols';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport { array, notUndef, pattern, multicast, channel, undef, effect, task, func, buffer, string, object } from '@redux-saga/is';\nimport delayP from '@redux-saga/delay-p';\n\nvar konst = function konst(v) {\n return function () {\n return v;\n };\n};\nvar kTrue =\n/*#__PURE__*/\nkonst(true);\n\nvar noop = function noop() {};\n\nif (process.env.NODE_ENV !== 'production' && typeof Proxy !== 'undefined') {\n noop =\n /*#__PURE__*/\n new Proxy(noop, {\n set: function set() {\n throw internalErr('There was an attempt to assign a property to internal `noop` function.');\n }\n });\n}\nvar identity = function identity(v) {\n return v;\n};\nvar hasSymbol = typeof Symbol === 'function';\nvar asyncIteratorSymbol = hasSymbol && Symbol.asyncIterator ? Symbol.asyncIterator : '@@asyncIterator';\nfunction check(value, predicate, error) {\n if (!predicate(value)) {\n throw new Error(error);\n }\n}\nvar assignWithSymbols = function assignWithSymbols(target, source) {\n _extends(target, source);\n\n if (Object.getOwnPropertySymbols) {\n Object.getOwnPropertySymbols(source).forEach(function (s) {\n target[s] = source[s];\n });\n }\n};\nvar flatMap = function flatMap(mapper, arr) {\n var _ref;\n\n return (_ref = []).concat.apply(_ref, arr.map(mapper));\n};\nfunction remove(array, item) {\n var index = array.indexOf(item);\n\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\nfunction once(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n\n called = true;\n fn();\n };\n}\n\nvar kThrow = function kThrow(err) {\n throw err;\n};\n\nvar kReturn = function kReturn(value) {\n return {\n value: value,\n done: true\n };\n};\n\nfunction makeIterator(next, thro, name) {\n if (thro === void 0) {\n thro = kThrow;\n }\n\n if (name === void 0) {\n name = 'iterator';\n }\n\n var iterator = {\n meta: {\n name: name\n },\n next: next,\n throw: thro,\n return: kReturn,\n isSagaIterator: true\n };\n\n if (typeof Symbol !== 'undefined') {\n iterator[Symbol.iterator] = function () {\n return iterator;\n };\n }\n\n return iterator;\n}\nfunction logError(error, _ref2) {\n var sagaStack = _ref2.sagaStack;\n\n /*eslint-disable no-console*/\n console.error(error);\n console.error(sagaStack);\n}\nvar internalErr = function internalErr(err) {\n return new Error(\"\\n redux-saga: Error checking hooks detected an inconsistent state. This is likely a bug\\n in redux-saga code and not yours. Thanks for reporting this in the project's github repo.\\n Error: \" + err + \"\\n\");\n};\nvar createSetContextWarning = function createSetContextWarning(ctx, props) {\n return (ctx ? ctx + '.' : '') + \"setContext(props): argument \" + props + \" is not a plain object\";\n};\nvar FROZEN_ACTION_ERROR = \"You can't put (a.k.a. dispatch from saga) frozen actions.\\nWe have to define a special non-enumerable property on those actions for scheduling purposes.\\nOtherwise you wouldn't be able to communicate properly between sagas & other subscribers (action ordering would become far less predictable).\\nIf you are using redux and you care about this behaviour (frozen actions),\\nthen you might want to switch to freezing actions in a middleware rather than in action creator.\\nExample implementation:\\n\\nconst freezeActions = store => next => action => next(Object.freeze(action))\\n\"; // creates empty, but not-holey array\n\nvar createEmptyArray = function createEmptyArray(n) {\n return Array.apply(null, new Array(n));\n};\nvar wrapSagaDispatch = function wrapSagaDispatch(dispatch) {\n return function (action) {\n if (process.env.NODE_ENV !== 'production') {\n check(action, function (ac) {\n return !Object.isFrozen(ac);\n }, FROZEN_ACTION_ERROR);\n }\n\n return dispatch(Object.defineProperty(action, SAGA_ACTION, {\n value: true\n }));\n };\n};\nvar shouldTerminate = function shouldTerminate(res) {\n return res === TERMINATE;\n};\nvar shouldCancel = function shouldCancel(res) {\n return res === TASK_CANCEL;\n};\nvar shouldComplete = function shouldComplete(res) {\n return shouldTerminate(res) || shouldCancel(res);\n};\nfunction createAllStyleChildCallbacks(shape, parentCallback) {\n var keys = Object.keys(shape);\n var totalCount = keys.length;\n\n if (process.env.NODE_ENV !== 'production') {\n check(totalCount, function (c) {\n return c > 0;\n }, 'createAllStyleChildCallbacks: get an empty array or object');\n }\n\n var completedCount = 0;\n var completed;\n var results = array(shape) ? createEmptyArray(totalCount) : {};\n var childCallbacks = {};\n\n function checkEnd() {\n if (completedCount === totalCount) {\n completed = true;\n parentCallback(results);\n }\n }\n\n keys.forEach(function (key) {\n var chCbAtKey = function chCbAtKey(res, isErr) {\n if (completed) {\n return;\n }\n\n if (isErr || shouldComplete(res)) {\n parentCallback.cancel();\n parentCallback(res, isErr);\n } else {\n results[key] = res;\n completedCount++;\n checkEnd();\n }\n };\n\n chCbAtKey.cancel = noop;\n childCallbacks[key] = chCbAtKey;\n });\n\n parentCallback.cancel = function () {\n if (!completed) {\n completed = true;\n keys.forEach(function (key) {\n return childCallbacks[key].cancel();\n });\n }\n };\n\n return childCallbacks;\n}\nfunction getMetaInfo(fn) {\n return {\n name: fn.name || 'anonymous',\n location: getLocation(fn)\n };\n}\nfunction getLocation(instrumented) {\n return instrumented[SAGA_LOCATION];\n}\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\nvar BUFFER_OVERFLOW = \"Channel's Buffer overflow!\";\nvar ON_OVERFLOW_THROW = 1;\nvar ON_OVERFLOW_DROP = 2;\nvar ON_OVERFLOW_SLIDE = 3;\nvar ON_OVERFLOW_EXPAND = 4;\nvar zeroBuffer = {\n isEmpty: kTrue,\n put: noop,\n take: noop\n};\n\nfunction ringBuffer(limit, overflowAction) {\n if (limit === void 0) {\n limit = 10;\n }\n\n var arr = new Array(limit);\n var length = 0;\n var pushIndex = 0;\n var popIndex = 0;\n\n var push = function push(it) {\n arr[pushIndex] = it;\n pushIndex = (pushIndex + 1) % limit;\n length++;\n };\n\n var take = function take() {\n if (length != 0) {\n var it = arr[popIndex];\n arr[popIndex] = null;\n length--;\n popIndex = (popIndex + 1) % limit;\n return it;\n }\n };\n\n var flush = function flush() {\n var items = [];\n\n while (length) {\n items.push(take());\n }\n\n return items;\n };\n\n return {\n isEmpty: function isEmpty() {\n return length == 0;\n },\n put: function put(it) {\n if (length < limit) {\n push(it);\n } else {\n var doubledLimit;\n\n switch (overflowAction) {\n case ON_OVERFLOW_THROW:\n throw new Error(BUFFER_OVERFLOW);\n\n case ON_OVERFLOW_SLIDE:\n arr[pushIndex] = it;\n pushIndex = (pushIndex + 1) % limit;\n popIndex = pushIndex;\n break;\n\n case ON_OVERFLOW_EXPAND:\n doubledLimit = 2 * limit;\n arr = flush();\n length = arr.length;\n pushIndex = arr.length;\n popIndex = 0;\n arr.length = doubledLimit;\n limit = doubledLimit;\n push(it);\n break;\n\n default: // DROP\n\n }\n }\n },\n take: take,\n flush: flush\n };\n}\n\nvar none = function none() {\n return zeroBuffer;\n};\nvar fixed = function fixed(limit) {\n return ringBuffer(limit, ON_OVERFLOW_THROW);\n};\nvar dropping = function dropping(limit) {\n return ringBuffer(limit, ON_OVERFLOW_DROP);\n};\nvar sliding = function sliding(limit) {\n return ringBuffer(limit, ON_OVERFLOW_SLIDE);\n};\nvar expanding = function expanding(initialSize) {\n return ringBuffer(initialSize, ON_OVERFLOW_EXPAND);\n};\n\nvar buffers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n none: none,\n fixed: fixed,\n dropping: dropping,\n sliding: sliding,\n expanding: expanding\n});\n\nvar TAKE = 'TAKE';\nvar PUT = 'PUT';\nvar ALL = 'ALL';\nvar RACE = 'RACE';\nvar CALL = 'CALL';\nvar CPS = 'CPS';\nvar FORK = 'FORK';\nvar JOIN = 'JOIN';\nvar CANCEL = 'CANCEL';\nvar SELECT = 'SELECT';\nvar ACTION_CHANNEL = 'ACTION_CHANNEL';\nvar CANCELLED = 'CANCELLED';\nvar FLUSH = 'FLUSH';\nvar GET_CONTEXT = 'GET_CONTEXT';\nvar SET_CONTEXT = 'SET_CONTEXT';\n\nvar effectTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n TAKE: TAKE,\n PUT: PUT,\n ALL: ALL,\n RACE: RACE,\n CALL: CALL,\n CPS: CPS,\n FORK: FORK,\n JOIN: JOIN,\n CANCEL: CANCEL,\n SELECT: SELECT,\n ACTION_CHANNEL: ACTION_CHANNEL,\n CANCELLED: CANCELLED,\n FLUSH: FLUSH,\n GET_CONTEXT: GET_CONTEXT,\n SET_CONTEXT: SET_CONTEXT\n});\n\nvar TEST_HINT = '\\n(HINT: if you are getting these errors in tests, consider using createMockTask from @redux-saga/testing-utils)';\n\nvar makeEffect = function makeEffect(type, payload) {\n var _ref;\n\n return _ref = {}, _ref[IO] = true, _ref.combinator = false, _ref.type = type, _ref.payload = payload, _ref;\n};\n\nvar isForkEffect = function isForkEffect(eff) {\n return effect(eff) && eff.type === FORK;\n};\n\nvar detach = function detach(eff) {\n if (process.env.NODE_ENV !== 'production') {\n check(eff, isForkEffect, 'detach(eff): argument must be a fork effect');\n }\n\n return makeEffect(FORK, _extends({}, eff.payload, {\n detached: true\n }));\n};\nfunction take(patternOrChannel, multicastPattern) {\n if (patternOrChannel === void 0) {\n patternOrChannel = '*';\n }\n\n if (process.env.NODE_ENV !== 'production' && arguments.length) {\n check(arguments[0], notUndef, 'take(patternOrChannel): patternOrChannel is undefined');\n }\n\n if (pattern(patternOrChannel)) {\n if (notUndef(multicastPattern)) {\n /* eslint-disable no-console */\n console.warn(\"take(pattern) takes one argument but two were provided. Consider passing an array for listening to several action types\");\n }\n\n return makeEffect(TAKE, {\n pattern: patternOrChannel\n });\n }\n\n if (multicast(patternOrChannel) && notUndef(multicastPattern) && pattern(multicastPattern)) {\n return makeEffect(TAKE, {\n channel: patternOrChannel,\n pattern: multicastPattern\n });\n }\n\n if (channel(patternOrChannel)) {\n if (notUndef(multicastPattern)) {\n /* eslint-disable no-console */\n console.warn(\"take(channel) takes one argument but two were provided. Second argument is ignored.\");\n }\n\n return makeEffect(TAKE, {\n channel: patternOrChannel\n });\n }\n\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\"take(patternOrChannel): argument \" + patternOrChannel + \" is not valid channel or a valid pattern\");\n }\n}\nvar takeMaybe = function takeMaybe() {\n var eff = take.apply(void 0, arguments);\n eff.payload.maybe = true;\n return eff;\n};\nfunction put(channel$1, action) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n check(channel$1, notUndef, 'put(channel, action): argument channel is undefined');\n check(channel$1, channel, \"put(channel, action): argument \" + channel$1 + \" is not a valid channel\");\n check(action, notUndef, 'put(channel, action): argument action is undefined');\n } else {\n check(channel$1, notUndef, 'put(action): argument action is undefined');\n }\n }\n\n if (undef(action)) {\n action = channel$1; // `undefined` instead of `null` to make default parameter work\n\n channel$1 = undefined;\n }\n\n return makeEffect(PUT, {\n channel: channel$1,\n action: action\n });\n}\nvar putResolve = function putResolve() {\n var eff = put.apply(void 0, arguments);\n eff.payload.resolve = true;\n return eff;\n};\nfunction all(effects) {\n var eff = makeEffect(ALL, effects);\n eff.combinator = true;\n return eff;\n}\nfunction race(effects) {\n var eff = makeEffect(RACE, effects);\n eff.combinator = true;\n return eff;\n} // this match getFnCallDescriptor logic\n\nvar validateFnDescriptor = function validateFnDescriptor(effectName, fnDescriptor) {\n check(fnDescriptor, notUndef, effectName + \": argument fn is undefined or null\");\n\n if (func(fnDescriptor)) {\n return;\n }\n\n var context = null;\n var fn;\n\n if (array(fnDescriptor)) {\n context = fnDescriptor[0];\n fn = fnDescriptor[1];\n check(fn, notUndef, effectName + \": argument of type [context, fn] has undefined or null `fn`\");\n } else if (object(fnDescriptor)) {\n context = fnDescriptor.context;\n fn = fnDescriptor.fn;\n check(fn, notUndef, effectName + \": argument of type {context, fn} has undefined or null `fn`\");\n } else {\n check(fnDescriptor, func, effectName + \": argument fn is not function\");\n return;\n }\n\n if (context && string(fn)) {\n check(context[fn], func, effectName + \": context arguments has no such method - \\\"\" + fn + \"\\\"\");\n return;\n }\n\n check(fn, func, effectName + \": unpacked fn argument (from [context, fn] or {context, fn}) is not a function\");\n};\n\nfunction getFnCallDescriptor(fnDescriptor, args) {\n var context = null;\n var fn;\n\n if (func(fnDescriptor)) {\n fn = fnDescriptor;\n } else {\n if (array(fnDescriptor)) {\n context = fnDescriptor[0];\n fn = fnDescriptor[1];\n } else {\n context = fnDescriptor.context;\n fn = fnDescriptor.fn;\n }\n\n if (context && string(fn) && func(context[fn])) {\n fn = context[fn];\n }\n }\n\n return {\n context: context,\n fn: fn,\n args: args\n };\n}\n\nvar isNotDelayEffect = function isNotDelayEffect(fn) {\n return fn !== delay;\n};\n\nfunction call(fnDescriptor) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var arg0 = typeof args[0] === 'number' ? args[0] : 'ms';\n check(fnDescriptor, isNotDelayEffect, \"instead of writing `yield call(delay, \" + arg0 + \")` where delay is an effect from `redux-saga/effects` you should write `yield delay(\" + arg0 + \")`\");\n validateFnDescriptor('call', fnDescriptor);\n }\n\n return makeEffect(CALL, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction apply(context, fn, args) {\n if (args === void 0) {\n args = [];\n }\n\n var fnDescriptor = [context, fn];\n\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('apply', fnDescriptor);\n }\n\n return makeEffect(CALL, getFnCallDescriptor([context, fn], args));\n}\nfunction cps(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('cps', fnDescriptor);\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return makeEffect(CPS, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction fork(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('fork', fnDescriptor);\n check(fnDescriptor, function (arg) {\n return !effect(arg);\n }, 'fork: argument must not be an effect');\n }\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return makeEffect(FORK, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction spawn(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('spawn', fnDescriptor);\n }\n\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n return detach(fork.apply(void 0, [fnDescriptor].concat(args)));\n}\nfunction join(taskOrTasks) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n throw new Error('join(...tasks) is not supported any more. Please use join([...tasks]) to join multiple tasks.');\n }\n\n if (array(taskOrTasks)) {\n taskOrTasks.forEach(function (t) {\n check(t, task, \"join([...tasks]): argument \" + t + \" is not a valid Task object \" + TEST_HINT);\n });\n } else {\n check(taskOrTasks, task, \"join(task): argument \" + taskOrTasks + \" is not a valid Task object \" + TEST_HINT);\n }\n }\n\n return makeEffect(JOIN, taskOrTasks);\n}\nfunction cancel(taskOrTasks) {\n if (taskOrTasks === void 0) {\n taskOrTasks = SELF_CANCELLATION;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n throw new Error('cancel(...tasks) is not supported any more. Please use cancel([...tasks]) to cancel multiple tasks.');\n }\n\n if (array(taskOrTasks)) {\n taskOrTasks.forEach(function (t) {\n check(t, task, \"cancel([...tasks]): argument \" + t + \" is not a valid Task object \" + TEST_HINT);\n });\n } else if (taskOrTasks !== SELF_CANCELLATION && notUndef(taskOrTasks)) {\n check(taskOrTasks, task, \"cancel(task): argument \" + taskOrTasks + \" is not a valid Task object \" + TEST_HINT);\n }\n }\n\n return makeEffect(CANCEL, taskOrTasks);\n}\nfunction select(selector) {\n if (selector === void 0) {\n selector = identity;\n }\n\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n if (process.env.NODE_ENV !== 'production' && arguments.length) {\n check(arguments[0], notUndef, 'select(selector, [...]): argument selector is undefined');\n check(selector, func, \"select(selector, [...]): argument \" + selector + \" is not a function\");\n }\n\n return makeEffect(SELECT, {\n selector: selector,\n args: args\n });\n}\n/**\n channel(pattern, [buffer]) => creates a proxy channel for store actions\n**/\n\nfunction actionChannel(pattern$1, buffer$1) {\n if (process.env.NODE_ENV !== 'production') {\n check(pattern$1, pattern, 'actionChannel(pattern,...): argument pattern is not valid');\n\n if (arguments.length > 1) {\n check(buffer$1, notUndef, 'actionChannel(pattern, buffer): argument buffer is undefined');\n check(buffer$1, buffer, \"actionChannel(pattern, buffer): argument \" + buffer$1 + \" is not a valid buffer\");\n }\n }\n\n return makeEffect(ACTION_CHANNEL, {\n pattern: pattern$1,\n buffer: buffer$1\n });\n}\nfunction cancelled() {\n return makeEffect(CANCELLED, {});\n}\nfunction flush(channel$1) {\n if (process.env.NODE_ENV !== 'production') {\n check(channel$1, channel, \"flush(channel): argument \" + channel$1 + \" is not valid channel\");\n }\n\n return makeEffect(FLUSH, channel$1);\n}\nfunction getContext(prop) {\n if (process.env.NODE_ENV !== 'production') {\n check(prop, string, \"getContext(prop): argument \" + prop + \" is not a string\");\n }\n\n return makeEffect(GET_CONTEXT, prop);\n}\nfunction setContext(props) {\n if (process.env.NODE_ENV !== 'production') {\n check(props, object, createSetContextWarning(null, props));\n }\n\n return makeEffect(SET_CONTEXT, props);\n}\nvar delay =\n/*#__PURE__*/\ncall.bind(null, delayP);\n\nexport { all as $, ALL as A, compose as B, CALL as C, logError as D, wrapSagaDispatch as E, FORK as F, GET_CONTEXT as G, identity as H, buffers as I, JOIN as J, detach as K, take as L, fork as M, cancel as N, call as O, PUT as P, delay as Q, RACE as R, SELECT as S, TAKE as T, actionChannel as U, sliding as V, race as W, effectTypes as X, takeMaybe as Y, put as Z, putResolve as _, CPS as a, apply as a0, cps as a1, spawn as a2, join as a3, select as a4, cancelled as a5, flush as a6, getContext as a7, setContext as a8, CANCEL as b, check as c, ACTION_CHANNEL as d, expanding as e, CANCELLED as f, FLUSH as g, SET_CONTEXT as h, internalErr as i, getMetaInfo as j, kTrue as k, createAllStyleChildCallbacks as l, createEmptyArray as m, none as n, once as o, assignWithSymbols as p, makeIterator as q, remove as r, shouldComplete as s, noop as t, flatMap as u, getLocation as v, createSetContextWarning as w, asyncIteratorSymbol as x, shouldCancel as y, shouldTerminate as z };\n","import { TASK, SAGA_ACTION, MULTICAST, IO } from '@redux-saga/symbols';\n\nvar undef = function undef(v) {\n return v === null || v === undefined;\n};\nvar notUndef = function notUndef(v) {\n return v !== null && v !== undefined;\n};\nvar func = function func(f) {\n return typeof f === 'function';\n};\nvar number = function number(n) {\n return typeof n === 'number';\n};\nvar string = function string(s) {\n return typeof s === 'string';\n};\nvar array = Array.isArray;\nvar object = function object(obj) {\n return obj && !array(obj) && typeof obj === 'object';\n};\nvar promise = function promise(p) {\n return p && func(p.then);\n};\nvar iterator = function iterator(it) {\n return it && func(it.next) && func(it.throw);\n};\nvar iterable = function iterable(it) {\n return it && func(Symbol) ? func(it[Symbol.iterator]) : array(it);\n};\nvar task = function task(t) {\n return t && t[TASK];\n};\nvar sagaAction = function sagaAction(a) {\n return Boolean(a && a[SAGA_ACTION]);\n};\nvar observable = function observable(ob) {\n return ob && func(ob.subscribe);\n};\nvar buffer = function buffer(buf) {\n return buf && func(buf.isEmpty) && func(buf.take) && func(buf.put);\n};\nvar pattern = function pattern(pat) {\n return pat && (string(pat) || symbol(pat) || func(pat) || array(pat) && pat.every(pattern));\n};\nvar channel = function channel(ch) {\n return ch && func(ch.take) && func(ch.close);\n};\nvar stringableFunc = function stringableFunc(f) {\n return func(f) && f.hasOwnProperty('toString');\n};\nvar symbol = function symbol(sym) {\n return Boolean(sym) && typeof Symbol === 'function' && sym.constructor === Symbol && sym !== Symbol.prototype;\n};\nvar multicast = function multicast(ch) {\n return channel(ch) && ch[MULTICAST];\n};\nvar effect = function effect(eff) {\n return eff && eff[IO];\n};\n\nexport { array, buffer, channel, effect, func, iterable, iterator, multicast, notUndef, number, object, observable, pattern, promise, sagaAction, string, stringableFunc, symbol, task, undef };\n","var createSymbol = function createSymbol(name) {\n return \"@@redux-saga/\" + name;\n};\n\nvar CANCEL =\n/*#__PURE__*/\ncreateSymbol('CANCEL_PROMISE');\nvar CHANNEL_END_TYPE =\n/*#__PURE__*/\ncreateSymbol('CHANNEL_END');\nvar IO =\n/*#__PURE__*/\ncreateSymbol('IO');\nvar MATCH =\n/*#__PURE__*/\ncreateSymbol('MATCH');\nvar MULTICAST =\n/*#__PURE__*/\ncreateSymbol('MULTICAST');\nvar SAGA_ACTION =\n/*#__PURE__*/\ncreateSymbol('SAGA_ACTION');\nvar SELF_CANCELLATION =\n/*#__PURE__*/\ncreateSymbol('SELF_CANCELLATION');\nvar TASK =\n/*#__PURE__*/\ncreateSymbol('TASK');\nvar TASK_CANCEL =\n/*#__PURE__*/\ncreateSymbol('TASK_CANCEL');\nvar TERMINATE =\n/*#__PURE__*/\ncreateSymbol('TERMINATE');\nvar SAGA_LOCATION =\n/*#__PURE__*/\ncreateSymbol('LOCATION');\n\nexport { CANCEL, CHANNEL_END_TYPE, IO, MATCH, MULTICAST, SAGA_ACTION, SAGA_LOCATION, SELF_CANCELLATION, TASK, TASK_CANCEL, TERMINATE };\n","\"use strict\";\n\n// ref: https://github.com/tc39/proposal-global\nvar getGlobal = function() {\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== 'undefined') { return self; }\n if (typeof window !== 'undefined') { return window; }\n if (typeof global !== 'undefined') { return global; }\n throw new Error('unable to locate global object');\n}\n\nvar globalObject = getGlobal();\n\nexport const fetch = globalObject.fetch;\n\nexport default globalObject.fetch.bind(globalObject);\n\nexport const Headers = globalObject.Headers;\nexport const Request = globalObject.Request;\nexport const Response = globalObject.Response;\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function 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 (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function () { /* empty */ };\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = true;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = require('./_hide');\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","const colorString = require('color-string');\nconst convert = require('color-convert');\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...args) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (args.length > 0) {\n\t\t\treturn new Color(args, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...args) {\n\t\tlet color = args[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(args, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nmodule.exports = Color;\n","'use strict'\n\nmodule.exports = direction\n\nvar RTL = '\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC'\nvar LTR =\n 'A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6' +\n '\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\\u200E\\u2C00-\\uFB1C' +\n '\\uFE00-\\uFE6F\\uFEFD-\\uFFFF'\n\nvar rtl = new RegExp('^[^' + LTR + ']*[' + RTL + ']')\nvar ltr = new RegExp('^[^' + RTL + ']*[' + LTR + ']')\n\nfunction direction(value) {\n value = String(value || '')\n\n if (rtl.test(value)) {\n return 'rtl'\n }\n\n if (ltr.test(value)) {\n return 'ltr'\n }\n\n return 'neutral'\n}\n","/**\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar DELETE = 'delete';\n\n// Constants describing the size of trie nodes.\nvar SHIFT = 5; // Resulted in best performance after ______?\nvar SIZE = 1 << SHIFT;\nvar MASK = SIZE - 1;\n\n// A consistent shared value representing \"not set\" which equals nothing other\n// than itself, and nothing that could be provided externally.\nvar NOT_SET = {};\n\n// Boolean references, Rough equivalent of `bool &`.\nfunction MakeRef() {\n return { value: false };\n}\n\nfunction SetRef(ref) {\n if (ref) {\n ref.value = true;\n }\n}\n\n// A function which returns a value representing an \"owner\" for transient writes\n// to tries. The return value will only ever equal itself, and will not equal\n// the return of any subsequent call of this function.\nfunction OwnerID() {}\n\nfunction ensureSize(iter) {\n if (iter.size === undefined) {\n iter.size = iter.__iterate(returnTrue);\n }\n return iter.size;\n}\n\nfunction wrapIndex(iter, index) {\n // This implements \"is array index\" which the ECMAString spec defines as:\n //\n // A String property name P is an array index if and only if\n // ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal\n // to 2^32−1.\n //\n // http://www.ecma-international.org/ecma-262/6.0/#sec-array-exotic-objects\n if (typeof index !== 'number') {\n var uint32Index = index >>> 0; // N >>> 0 is shorthand for ToUint32\n if ('' + uint32Index !== index || uint32Index === 4294967295) {\n return NaN;\n }\n index = uint32Index;\n }\n return index < 0 ? ensureSize(iter) + index : index;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction wholeSlice(begin, end, size) {\n return (\n ((begin === 0 && !isNeg(begin)) ||\n (size !== undefined && begin <= -size)) &&\n (end === undefined || (size !== undefined && end >= size))\n );\n}\n\nfunction resolveBegin(begin, size) {\n return resolveIndex(begin, size, 0);\n}\n\nfunction resolveEnd(end, size) {\n return resolveIndex(end, size, size);\n}\n\nfunction resolveIndex(index, size, defaultIndex) {\n // Sanitize indices using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n return index === undefined\n ? defaultIndex\n : isNeg(index)\n ? size === Infinity\n ? size\n : Math.max(0, size + index) | 0\n : size === undefined || size === index\n ? index\n : Math.min(size, index) | 0;\n}\n\nfunction isNeg(value) {\n // Account for -0 which is negative, but not less than 0.\n return value < 0 || (value === 0 && 1 / value === -Infinity);\n}\n\nvar IS_COLLECTION_SYMBOL = '@@__IMMUTABLE_ITERABLE__@@';\n\nfunction isCollection(maybeCollection) {\n return Boolean(maybeCollection && maybeCollection[IS_COLLECTION_SYMBOL]);\n}\n\nvar IS_KEYED_SYMBOL = '@@__IMMUTABLE_KEYED__@@';\n\nfunction isKeyed(maybeKeyed) {\n return Boolean(maybeKeyed && maybeKeyed[IS_KEYED_SYMBOL]);\n}\n\nvar IS_INDEXED_SYMBOL = '@@__IMMUTABLE_INDEXED__@@';\n\nfunction isIndexed(maybeIndexed) {\n return Boolean(maybeIndexed && maybeIndexed[IS_INDEXED_SYMBOL]);\n}\n\nfunction isAssociative(maybeAssociative) {\n return isKeyed(maybeAssociative) || isIndexed(maybeAssociative);\n}\n\nvar Collection = function Collection(value) {\n return isCollection(value) ? value : Seq(value);\n};\n\nvar KeyedCollection = /*@__PURE__*/(function (Collection) {\n function KeyedCollection(value) {\n return isKeyed(value) ? value : KeyedSeq(value);\n }\n\n if ( Collection ) KeyedCollection.__proto__ = Collection;\n KeyedCollection.prototype = Object.create( Collection && Collection.prototype );\n KeyedCollection.prototype.constructor = KeyedCollection;\n\n return KeyedCollection;\n}(Collection));\n\nvar IndexedCollection = /*@__PURE__*/(function (Collection) {\n function IndexedCollection(value) {\n return isIndexed(value) ? value : IndexedSeq(value);\n }\n\n if ( Collection ) IndexedCollection.__proto__ = Collection;\n IndexedCollection.prototype = Object.create( Collection && Collection.prototype );\n IndexedCollection.prototype.constructor = IndexedCollection;\n\n return IndexedCollection;\n}(Collection));\n\nvar SetCollection = /*@__PURE__*/(function (Collection) {\n function SetCollection(value) {\n return isCollection(value) && !isAssociative(value) ? value : SetSeq(value);\n }\n\n if ( Collection ) SetCollection.__proto__ = Collection;\n SetCollection.prototype = Object.create( Collection && Collection.prototype );\n SetCollection.prototype.constructor = SetCollection;\n\n return SetCollection;\n}(Collection));\n\nCollection.Keyed = KeyedCollection;\nCollection.Indexed = IndexedCollection;\nCollection.Set = SetCollection;\n\nvar IS_SEQ_SYMBOL = '@@__IMMUTABLE_SEQ__@@';\n\nfunction isSeq(maybeSeq) {\n return Boolean(maybeSeq && maybeSeq[IS_SEQ_SYMBOL]);\n}\n\nvar IS_RECORD_SYMBOL = '@@__IMMUTABLE_RECORD__@@';\n\nfunction isRecord(maybeRecord) {\n return Boolean(maybeRecord && maybeRecord[IS_RECORD_SYMBOL]);\n}\n\nfunction isImmutable(maybeImmutable) {\n return isCollection(maybeImmutable) || isRecord(maybeImmutable);\n}\n\nvar IS_ORDERED_SYMBOL = '@@__IMMUTABLE_ORDERED__@@';\n\nfunction isOrdered(maybeOrdered) {\n return Boolean(maybeOrdered && maybeOrdered[IS_ORDERED_SYMBOL]);\n}\n\nvar ITERATE_KEYS = 0;\nvar ITERATE_VALUES = 1;\nvar ITERATE_ENTRIES = 2;\n\nvar REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\n\nvar ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL;\n\nvar Iterator = function Iterator(next) {\n this.next = next;\n};\n\nIterator.prototype.toString = function toString () {\n return '[Iterator]';\n};\n\nIterator.KEYS = ITERATE_KEYS;\nIterator.VALUES = ITERATE_VALUES;\nIterator.ENTRIES = ITERATE_ENTRIES;\n\nIterator.prototype.inspect = Iterator.prototype.toSource = function () {\n return this.toString();\n};\nIterator.prototype[ITERATOR_SYMBOL] = function () {\n return this;\n};\n\nfunction iteratorValue(type, k, v, iteratorResult) {\n var value = type === 0 ? k : type === 1 ? v : [k, v];\n iteratorResult\n ? (iteratorResult.value = value)\n : (iteratorResult = {\n value: value,\n done: false,\n });\n return iteratorResult;\n}\n\nfunction iteratorDone() {\n return { value: undefined, done: true };\n}\n\nfunction hasIterator(maybeIterable) {\n if (Array.isArray(maybeIterable)) {\n // IE11 trick as it does not support `Symbol.iterator`\n return true;\n }\n\n return !!getIteratorFn(maybeIterable);\n}\n\nfunction isIterator(maybeIterator) {\n return maybeIterator && typeof maybeIterator.next === 'function';\n}\n\nfunction getIterator(iterable) {\n var iteratorFn = getIteratorFn(iterable);\n return iteratorFn && iteratorFn.call(iterable);\n}\n\nfunction getIteratorFn(iterable) {\n var iteratorFn =\n iterable &&\n ((REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL]) ||\n iterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n}\n\nfunction isEntriesIterable(maybeIterable) {\n var iteratorFn = getIteratorFn(maybeIterable);\n return iteratorFn && iteratorFn === maybeIterable.entries;\n}\n\nfunction isKeysIterable(maybeIterable) {\n var iteratorFn = getIteratorFn(maybeIterable);\n return iteratorFn && iteratorFn === maybeIterable.keys;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction isArrayLike(value) {\n if (Array.isArray(value) || typeof value === 'string') {\n return true;\n }\n\n return (\n value &&\n typeof value === 'object' &&\n Number.isInteger(value.length) &&\n value.length >= 0 &&\n (value.length === 0\n ? // Only {length: 0} is considered Array-like.\n Object.keys(value).length === 1\n : // An object is only Array-like if it has a property where the last value\n // in the array-like may be found (which could be undefined).\n value.hasOwnProperty(value.length - 1))\n );\n}\n\nvar Seq = /*@__PURE__*/(function (Collection) {\n function Seq(value) {\n return value === undefined || value === null\n ? emptySequence()\n : isImmutable(value)\n ? value.toSeq()\n : seqFromValue(value);\n }\n\n if ( Collection ) Seq.__proto__ = Collection;\n Seq.prototype = Object.create( Collection && Collection.prototype );\n Seq.prototype.constructor = Seq;\n\n Seq.prototype.toSeq = function toSeq () {\n return this;\n };\n\n Seq.prototype.toString = function toString () {\n return this.__toString('Seq {', '}');\n };\n\n Seq.prototype.cacheResult = function cacheResult () {\n if (!this._cache && this.__iterateUncached) {\n this._cache = this.entrySeq().toArray();\n this.size = this._cache.length;\n }\n return this;\n };\n\n // abstract __iterateUncached(fn, reverse)\n\n Seq.prototype.__iterate = function __iterate (fn, reverse) {\n var cache = this._cache;\n if (cache) {\n var size = cache.length;\n var i = 0;\n while (i !== size) {\n var entry = cache[reverse ? size - ++i : i++];\n if (fn(entry[1], entry[0], this) === false) {\n break;\n }\n }\n return i;\n }\n return this.__iterateUncached(fn, reverse);\n };\n\n // abstract __iteratorUncached(type, reverse)\n\n Seq.prototype.__iterator = function __iterator (type, reverse) {\n var cache = this._cache;\n if (cache) {\n var size = cache.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var entry = cache[reverse ? size - ++i : i++];\n return iteratorValue(type, entry[0], entry[1]);\n });\n }\n return this.__iteratorUncached(type, reverse);\n };\n\n return Seq;\n}(Collection));\n\nvar KeyedSeq = /*@__PURE__*/(function (Seq) {\n function KeyedSeq(value) {\n return value === undefined || value === null\n ? emptySequence().toKeyedSeq()\n : isCollection(value)\n ? isKeyed(value)\n ? value.toSeq()\n : value.fromEntrySeq()\n : isRecord(value)\n ? value.toSeq()\n : keyedSeqFromValue(value);\n }\n\n if ( Seq ) KeyedSeq.__proto__ = Seq;\n KeyedSeq.prototype = Object.create( Seq && Seq.prototype );\n KeyedSeq.prototype.constructor = KeyedSeq;\n\n KeyedSeq.prototype.toKeyedSeq = function toKeyedSeq () {\n return this;\n };\n\n return KeyedSeq;\n}(Seq));\n\nvar IndexedSeq = /*@__PURE__*/(function (Seq) {\n function IndexedSeq(value) {\n return value === undefined || value === null\n ? emptySequence()\n : isCollection(value)\n ? isKeyed(value)\n ? value.entrySeq()\n : value.toIndexedSeq()\n : isRecord(value)\n ? value.toSeq().entrySeq()\n : indexedSeqFromValue(value);\n }\n\n if ( Seq ) IndexedSeq.__proto__ = Seq;\n IndexedSeq.prototype = Object.create( Seq && Seq.prototype );\n IndexedSeq.prototype.constructor = IndexedSeq;\n\n IndexedSeq.of = function of (/*...values*/) {\n return IndexedSeq(arguments);\n };\n\n IndexedSeq.prototype.toIndexedSeq = function toIndexedSeq () {\n return this;\n };\n\n IndexedSeq.prototype.toString = function toString () {\n return this.__toString('Seq [', ']');\n };\n\n return IndexedSeq;\n}(Seq));\n\nvar SetSeq = /*@__PURE__*/(function (Seq) {\n function SetSeq(value) {\n return (\n isCollection(value) && !isAssociative(value) ? value : IndexedSeq(value)\n ).toSetSeq();\n }\n\n if ( Seq ) SetSeq.__proto__ = Seq;\n SetSeq.prototype = Object.create( Seq && Seq.prototype );\n SetSeq.prototype.constructor = SetSeq;\n\n SetSeq.of = function of (/*...values*/) {\n return SetSeq(arguments);\n };\n\n SetSeq.prototype.toSetSeq = function toSetSeq () {\n return this;\n };\n\n return SetSeq;\n}(Seq));\n\nSeq.isSeq = isSeq;\nSeq.Keyed = KeyedSeq;\nSeq.Set = SetSeq;\nSeq.Indexed = IndexedSeq;\n\nSeq.prototype[IS_SEQ_SYMBOL] = true;\n\n// #pragma Root Sequences\n\nvar ArraySeq = /*@__PURE__*/(function (IndexedSeq) {\n function ArraySeq(array) {\n this._array = array;\n this.size = array.length;\n }\n\n if ( IndexedSeq ) ArraySeq.__proto__ = IndexedSeq;\n ArraySeq.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n ArraySeq.prototype.constructor = ArraySeq;\n\n ArraySeq.prototype.get = function get (index, notSetValue) {\n return this.has(index) ? this._array[wrapIndex(this, index)] : notSetValue;\n };\n\n ArraySeq.prototype.__iterate = function __iterate (fn, reverse) {\n var array = this._array;\n var size = array.length;\n var i = 0;\n while (i !== size) {\n var ii = reverse ? size - ++i : i++;\n if (fn(array[ii], ii, this) === false) {\n break;\n }\n }\n return i;\n };\n\n ArraySeq.prototype.__iterator = function __iterator (type, reverse) {\n var array = this._array;\n var size = array.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var ii = reverse ? size - ++i : i++;\n return iteratorValue(type, ii, array[ii]);\n });\n };\n\n return ArraySeq;\n}(IndexedSeq));\n\nvar ObjectSeq = /*@__PURE__*/(function (KeyedSeq) {\n function ObjectSeq(object) {\n var keys = Object.keys(object).concat(\n Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(object) : []\n );\n this._object = object;\n this._keys = keys;\n this.size = keys.length;\n }\n\n if ( KeyedSeq ) ObjectSeq.__proto__ = KeyedSeq;\n ObjectSeq.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n ObjectSeq.prototype.constructor = ObjectSeq;\n\n ObjectSeq.prototype.get = function get (key, notSetValue) {\n if (notSetValue !== undefined && !this.has(key)) {\n return notSetValue;\n }\n return this._object[key];\n };\n\n ObjectSeq.prototype.has = function has (key) {\n return hasOwnProperty.call(this._object, key);\n };\n\n ObjectSeq.prototype.__iterate = function __iterate (fn, reverse) {\n var object = this._object;\n var keys = this._keys;\n var size = keys.length;\n var i = 0;\n while (i !== size) {\n var key = keys[reverse ? size - ++i : i++];\n if (fn(object[key], key, this) === false) {\n break;\n }\n }\n return i;\n };\n\n ObjectSeq.prototype.__iterator = function __iterator (type, reverse) {\n var object = this._object;\n var keys = this._keys;\n var size = keys.length;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var key = keys[reverse ? size - ++i : i++];\n return iteratorValue(type, key, object[key]);\n });\n };\n\n return ObjectSeq;\n}(KeyedSeq));\nObjectSeq.prototype[IS_ORDERED_SYMBOL] = true;\n\nvar CollectionSeq = /*@__PURE__*/(function (IndexedSeq) {\n function CollectionSeq(collection) {\n this._collection = collection;\n this.size = collection.length || collection.size;\n }\n\n if ( IndexedSeq ) CollectionSeq.__proto__ = IndexedSeq;\n CollectionSeq.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n CollectionSeq.prototype.constructor = CollectionSeq;\n\n CollectionSeq.prototype.__iterateUncached = function __iterateUncached (fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var collection = this._collection;\n var iterator = getIterator(collection);\n var iterations = 0;\n if (isIterator(iterator)) {\n var step;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n }\n return iterations;\n };\n\n CollectionSeq.prototype.__iteratorUncached = function __iteratorUncached (type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var collection = this._collection;\n var iterator = getIterator(collection);\n if (!isIterator(iterator)) {\n return new Iterator(iteratorDone);\n }\n var iterations = 0;\n return new Iterator(function () {\n var step = iterator.next();\n return step.done ? step : iteratorValue(type, iterations++, step.value);\n });\n };\n\n return CollectionSeq;\n}(IndexedSeq));\n\n// # pragma Helper functions\n\nvar EMPTY_SEQ;\n\nfunction emptySequence() {\n return EMPTY_SEQ || (EMPTY_SEQ = new ArraySeq([]));\n}\n\nfunction keyedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (seq) {\n return seq.fromEntrySeq();\n }\n if (typeof value === 'object') {\n return new ObjectSeq(value);\n }\n throw new TypeError(\n 'Expected Array or collection object of [k, v] entries, or keyed object: ' +\n value\n );\n}\n\nfunction indexedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (seq) {\n return seq;\n }\n throw new TypeError(\n 'Expected Array or collection object of values: ' + value\n );\n}\n\nfunction seqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (seq) {\n return isEntriesIterable(value)\n ? seq.fromEntrySeq()\n : isKeysIterable(value)\n ? seq.toSetSeq()\n : seq;\n }\n if (typeof value === 'object') {\n return new ObjectSeq(value);\n }\n throw new TypeError(\n 'Expected Array or collection object of values, or keyed object: ' + value\n );\n}\n\nfunction maybeIndexedSeqFromValue(value) {\n return isArrayLike(value)\n ? new ArraySeq(value)\n : hasIterator(value)\n ? new CollectionSeq(value)\n : undefined;\n}\n\nvar IS_MAP_SYMBOL = '@@__IMMUTABLE_MAP__@@';\n\nfunction isMap(maybeMap) {\n return Boolean(maybeMap && maybeMap[IS_MAP_SYMBOL]);\n}\n\nfunction isOrderedMap(maybeOrderedMap) {\n return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap);\n}\n\nfunction isValueObject(maybeValue) {\n return Boolean(\n maybeValue &&\n typeof maybeValue.equals === 'function' &&\n typeof maybeValue.hashCode === 'function'\n );\n}\n\n/**\n * An extension of the \"same-value\" algorithm as [described for use by ES6 Map\n * and Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Key_equality)\n *\n * NaN is considered the same as NaN, however -0 and 0 are considered the same\n * value, which is different from the algorithm described by\n * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).\n *\n * This is extended further to allow Objects to describe the values they\n * represent, by way of `valueOf` or `equals` (and `hashCode`).\n *\n * Note: because of this extension, the key equality of Immutable.Map and the\n * value equality of Immutable.Set will differ from ES6 Map and Set.\n *\n * ### Defining custom values\n *\n * The easiest way to describe the value an object represents is by implementing\n * `valueOf`. For example, `Date` represents a value by returning a unix\n * timestamp for `valueOf`:\n *\n * var date1 = new Date(1234567890000); // Fri Feb 13 2009 ...\n * var date2 = new Date(1234567890000);\n * date1.valueOf(); // 1234567890000\n * assert( date1 !== date2 );\n * assert( Immutable.is( date1, date2 ) );\n *\n * Note: overriding `valueOf` may have other implications if you use this object\n * where JavaScript expects a primitive, such as implicit string coercion.\n *\n * For more complex types, especially collections, implementing `valueOf` may\n * not be performant. An alternative is to implement `equals` and `hashCode`.\n *\n * `equals` takes another object, presumably of similar type, and returns true\n * if it is equal. Equality is symmetrical, so the same result should be\n * returned if this and the argument are flipped.\n *\n * assert( a.equals(b) === b.equals(a) );\n *\n * `hashCode` returns a 32bit integer number representing the object which will\n * be used to determine how to store the value object in a Map or Set. You must\n * provide both or neither methods, one must not exist without the other.\n *\n * Also, an important relationship between these methods must be upheld: if two\n * values are equal, they *must* return the same hashCode. If the values are not\n * equal, they might have the same hashCode; this is called a hash collision,\n * and while undesirable for performance reasons, it is acceptable.\n *\n * if (a.equals(b)) {\n * assert( a.hashCode() === b.hashCode() );\n * }\n *\n * All Immutable collections are Value Objects: they implement `equals()`\n * and `hashCode()`.\n */\nfunction is(valueA, valueB) {\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n if (\n typeof valueA.valueOf === 'function' &&\n typeof valueB.valueOf === 'function'\n ) {\n valueA = valueA.valueOf();\n valueB = valueB.valueOf();\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n }\n return !!(\n isValueObject(valueA) &&\n isValueObject(valueB) &&\n valueA.equals(valueB)\n );\n}\n\nvar imul =\n typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2\n ? Math.imul\n : function imul(a, b) {\n a |= 0; // int\n b |= 0; // int\n var c = a & 0xffff;\n var d = b & 0xffff;\n // Shift by 0 fixes the sign on the high part.\n return (c * d + ((((a >>> 16) * d + c * (b >>> 16)) << 16) >>> 0)) | 0; // int\n };\n\n// v8 has an optimization for storing 31-bit signed numbers.\n// Values which have either 00 or 11 as the high order bits qualify.\n// This function drops the highest order bit in a signed number, maintaining\n// the sign bit.\nfunction smi(i32) {\n return ((i32 >>> 1) & 0x40000000) | (i32 & 0xbfffffff);\n}\n\nvar defaultValueOf = Object.prototype.valueOf;\n\nfunction hash(o) {\n if (o == null) {\n return hashNullish(o);\n }\n\n if (typeof o.hashCode === 'function') {\n // Drop any high bits from accidentally long hash codes.\n return smi(o.hashCode(o));\n }\n\n var v = valueOf(o);\n\n if (v == null) {\n return hashNullish(v);\n }\n\n switch (typeof v) {\n case 'boolean':\n // The hash values for built-in constants are a 1 value for each 5-byte\n // shift region expect for the first, which encodes the value. This\n // reduces the odds of a hash collision for these common values.\n return v ? 0x42108421 : 0x42108420;\n case 'number':\n return hashNumber(v);\n case 'string':\n return v.length > STRING_HASH_CACHE_MIN_STRLEN\n ? cachedHashString(v)\n : hashString(v);\n case 'object':\n case 'function':\n return hashJSObj(v);\n case 'symbol':\n return hashSymbol(v);\n default:\n if (typeof v.toString === 'function') {\n return hashString(v.toString());\n }\n throw new Error('Value type ' + typeof v + ' cannot be hashed.');\n }\n}\n\nfunction hashNullish(nullish) {\n return nullish === null ? 0x42108422 : /* undefined */ 0x42108423;\n}\n\n// Compress arbitrarily large numbers into smi hashes.\nfunction hashNumber(n) {\n if (n !== n || n === Infinity) {\n return 0;\n }\n var hash = n | 0;\n if (hash !== n) {\n hash ^= n * 0xffffffff;\n }\n while (n > 0xffffffff) {\n n /= 0xffffffff;\n hash ^= n;\n }\n return smi(hash);\n}\n\nfunction cachedHashString(string) {\n var hashed = stringHashCache[string];\n if (hashed === undefined) {\n hashed = hashString(string);\n if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) {\n STRING_HASH_CACHE_SIZE = 0;\n stringHashCache = {};\n }\n STRING_HASH_CACHE_SIZE++;\n stringHashCache[string] = hashed;\n }\n return hashed;\n}\n\n// http://jsperf.com/hashing-strings\nfunction hashString(string) {\n // This is the hash from JVM\n // The hash code for a string is computed as\n // s[0] * 31 ^ (n - 1) + s[1] * 31 ^ (n - 2) + ... + s[n - 1],\n // where s[i] is the ith character of the string and n is the length of\n // the string. We \"mod\" the result to make it between 0 (inclusive) and 2^31\n // (exclusive) by dropping high bits.\n var hashed = 0;\n for (var ii = 0; ii < string.length; ii++) {\n hashed = (31 * hashed + string.charCodeAt(ii)) | 0;\n }\n return smi(hashed);\n}\n\nfunction hashSymbol(sym) {\n var hashed = symbolMap[sym];\n if (hashed !== undefined) {\n return hashed;\n }\n\n hashed = nextHash();\n\n symbolMap[sym] = hashed;\n\n return hashed;\n}\n\nfunction hashJSObj(obj) {\n var hashed;\n if (usingWeakMap) {\n hashed = weakMap.get(obj);\n if (hashed !== undefined) {\n return hashed;\n }\n }\n\n hashed = obj[UID_HASH_KEY];\n if (hashed !== undefined) {\n return hashed;\n }\n\n if (!canDefineProperty) {\n hashed = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY];\n if (hashed !== undefined) {\n return hashed;\n }\n\n hashed = getIENodeHash(obj);\n if (hashed !== undefined) {\n return hashed;\n }\n }\n\n hashed = nextHash();\n\n if (usingWeakMap) {\n weakMap.set(obj, hashed);\n } else if (isExtensible !== undefined && isExtensible(obj) === false) {\n throw new Error('Non-extensible objects are not allowed as keys.');\n } else if (canDefineProperty) {\n Object.defineProperty(obj, UID_HASH_KEY, {\n enumerable: false,\n configurable: false,\n writable: false,\n value: hashed,\n });\n } else if (\n obj.propertyIsEnumerable !== undefined &&\n obj.propertyIsEnumerable === obj.constructor.prototype.propertyIsEnumerable\n ) {\n // Since we can't define a non-enumerable property on the object\n // we'll hijack one of the less-used non-enumerable properties to\n // save our hash on it. Since this is a function it will not show up in\n // `JSON.stringify` which is what we want.\n obj.propertyIsEnumerable = function () {\n return this.constructor.prototype.propertyIsEnumerable.apply(\n this,\n arguments\n );\n };\n obj.propertyIsEnumerable[UID_HASH_KEY] = hashed;\n } else if (obj.nodeType !== undefined) {\n // At this point we couldn't get the IE `uniqueID` to use as a hash\n // and we couldn't use a non-enumerable property to exploit the\n // dontEnum bug so we simply add the `UID_HASH_KEY` on the node\n // itself.\n obj[UID_HASH_KEY] = hashed;\n } else {\n throw new Error('Unable to set a non-enumerable property on object.');\n }\n\n return hashed;\n}\n\n// Get references to ES5 object methods.\nvar isExtensible = Object.isExtensible;\n\n// True if Object.defineProperty works as expected. IE8 fails this test.\nvar canDefineProperty = (function () {\n try {\n Object.defineProperty({}, '@', {});\n return true;\n } catch (e) {\n return false;\n }\n})();\n\n// IE has a `uniqueID` property on DOM nodes. We can construct the hash from it\n// and avoid memory leaks from the IE cloneNode bug.\nfunction getIENodeHash(node) {\n if (node && node.nodeType > 0) {\n switch (node.nodeType) {\n case 1: // Element\n return node.uniqueID;\n case 9: // Document\n return node.documentElement && node.documentElement.uniqueID;\n }\n }\n}\n\nfunction valueOf(obj) {\n return obj.valueOf !== defaultValueOf && typeof obj.valueOf === 'function'\n ? obj.valueOf(obj)\n : obj;\n}\n\nfunction nextHash() {\n var nextHash = ++_objHashUID;\n if (_objHashUID & 0x40000000) {\n _objHashUID = 0;\n }\n return nextHash;\n}\n\n// If possible, use a WeakMap.\nvar usingWeakMap = typeof WeakMap === 'function';\nvar weakMap;\nif (usingWeakMap) {\n weakMap = new WeakMap();\n}\n\nvar symbolMap = Object.create(null);\n\nvar _objHashUID = 0;\n\nvar UID_HASH_KEY = '__immutablehash__';\nif (typeof Symbol === 'function') {\n UID_HASH_KEY = Symbol(UID_HASH_KEY);\n}\n\nvar STRING_HASH_CACHE_MIN_STRLEN = 16;\nvar STRING_HASH_CACHE_MAX_SIZE = 255;\nvar STRING_HASH_CACHE_SIZE = 0;\nvar stringHashCache = {};\n\nvar ToKeyedSequence = /*@__PURE__*/(function (KeyedSeq) {\n function ToKeyedSequence(indexed, useKeys) {\n this._iter = indexed;\n this._useKeys = useKeys;\n this.size = indexed.size;\n }\n\n if ( KeyedSeq ) ToKeyedSequence.__proto__ = KeyedSeq;\n ToKeyedSequence.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n ToKeyedSequence.prototype.constructor = ToKeyedSequence;\n\n ToKeyedSequence.prototype.get = function get (key, notSetValue) {\n return this._iter.get(key, notSetValue);\n };\n\n ToKeyedSequence.prototype.has = function has (key) {\n return this._iter.has(key);\n };\n\n ToKeyedSequence.prototype.valueSeq = function valueSeq () {\n return this._iter.valueSeq();\n };\n\n ToKeyedSequence.prototype.reverse = function reverse () {\n var this$1$1 = this;\n\n var reversedSequence = reverseFactory(this, true);\n if (!this._useKeys) {\n reversedSequence.valueSeq = function () { return this$1$1._iter.toSeq().reverse(); };\n }\n return reversedSequence;\n };\n\n ToKeyedSequence.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n var mappedSequence = mapFactory(this, mapper, context);\n if (!this._useKeys) {\n mappedSequence.valueSeq = function () { return this$1$1._iter.toSeq().map(mapper, context); };\n }\n return mappedSequence;\n };\n\n ToKeyedSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._iter.__iterate(function (v, k) { return fn(v, k, this$1$1); }, reverse);\n };\n\n ToKeyedSequence.prototype.__iterator = function __iterator (type, reverse) {\n return this._iter.__iterator(type, reverse);\n };\n\n return ToKeyedSequence;\n}(KeyedSeq));\nToKeyedSequence.prototype[IS_ORDERED_SYMBOL] = true;\n\nvar ToIndexedSequence = /*@__PURE__*/(function (IndexedSeq) {\n function ToIndexedSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n if ( IndexedSeq ) ToIndexedSequence.__proto__ = IndexedSeq;\n ToIndexedSequence.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n ToIndexedSequence.prototype.constructor = ToIndexedSequence;\n\n ToIndexedSequence.prototype.includes = function includes (value) {\n return this._iter.includes(value);\n };\n\n ToIndexedSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n var i = 0;\n reverse && ensureSize(this);\n return this._iter.__iterate(\n function (v) { return fn(v, reverse ? this$1$1.size - ++i : i++, this$1$1); },\n reverse\n );\n };\n\n ToIndexedSequence.prototype.__iterator = function __iterator (type, reverse) {\n var this$1$1 = this;\n\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n var i = 0;\n reverse && ensureSize(this);\n return new Iterator(function () {\n var step = iterator.next();\n return step.done\n ? step\n : iteratorValue(\n type,\n reverse ? this$1$1.size - ++i : i++,\n step.value,\n step\n );\n });\n };\n\n return ToIndexedSequence;\n}(IndexedSeq));\n\nvar ToSetSequence = /*@__PURE__*/(function (SetSeq) {\n function ToSetSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n if ( SetSeq ) ToSetSequence.__proto__ = SetSeq;\n ToSetSequence.prototype = Object.create( SetSeq && SetSeq.prototype );\n ToSetSequence.prototype.constructor = ToSetSequence;\n\n ToSetSequence.prototype.has = function has (key) {\n return this._iter.includes(key);\n };\n\n ToSetSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._iter.__iterate(function (v) { return fn(v, v, this$1$1); }, reverse);\n };\n\n ToSetSequence.prototype.__iterator = function __iterator (type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function () {\n var step = iterator.next();\n return step.done\n ? step\n : iteratorValue(type, step.value, step.value, step);\n });\n };\n\n return ToSetSequence;\n}(SetSeq));\n\nvar FromEntriesSequence = /*@__PURE__*/(function (KeyedSeq) {\n function FromEntriesSequence(entries) {\n this._iter = entries;\n this.size = entries.size;\n }\n\n if ( KeyedSeq ) FromEntriesSequence.__proto__ = KeyedSeq;\n FromEntriesSequence.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n FromEntriesSequence.prototype.constructor = FromEntriesSequence;\n\n FromEntriesSequence.prototype.entrySeq = function entrySeq () {\n return this._iter.toSeq();\n };\n\n FromEntriesSequence.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._iter.__iterate(function (entry) {\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedCollection = isCollection(entry);\n return fn(\n indexedCollection ? entry.get(1) : entry[1],\n indexedCollection ? entry.get(0) : entry[0],\n this$1$1\n );\n }\n }, reverse);\n };\n\n FromEntriesSequence.prototype.__iterator = function __iterator (type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function () {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedCollection = isCollection(entry);\n return iteratorValue(\n type,\n indexedCollection ? entry.get(0) : entry[0],\n indexedCollection ? entry.get(1) : entry[1],\n step\n );\n }\n }\n });\n };\n\n return FromEntriesSequence;\n}(KeyedSeq));\n\nToIndexedSequence.prototype.cacheResult =\n ToKeyedSequence.prototype.cacheResult =\n ToSetSequence.prototype.cacheResult =\n FromEntriesSequence.prototype.cacheResult =\n cacheResultThrough;\n\nfunction flipFactory(collection) {\n var flipSequence = makeSequence(collection);\n flipSequence._iter = collection;\n flipSequence.size = collection.size;\n flipSequence.flip = function () { return collection; };\n flipSequence.reverse = function () {\n var reversedSequence = collection.reverse.apply(this); // super.reverse()\n reversedSequence.flip = function () { return collection.reverse(); };\n return reversedSequence;\n };\n flipSequence.has = function (key) { return collection.includes(key); };\n flipSequence.includes = function (key) { return collection.has(key); };\n flipSequence.cacheResult = cacheResultThrough;\n flipSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n return collection.__iterate(function (v, k) { return fn(k, v, this$1$1) !== false; }, reverse);\n };\n flipSequence.__iteratorUncached = function (type, reverse) {\n if (type === ITERATE_ENTRIES) {\n var iterator = collection.__iterator(type, reverse);\n return new Iterator(function () {\n var step = iterator.next();\n if (!step.done) {\n var k = step.value[0];\n step.value[0] = step.value[1];\n step.value[1] = k;\n }\n return step;\n });\n }\n return collection.__iterator(\n type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES,\n reverse\n );\n };\n return flipSequence;\n}\n\nfunction mapFactory(collection, mapper, context) {\n var mappedSequence = makeSequence(collection);\n mappedSequence.size = collection.size;\n mappedSequence.has = function (key) { return collection.has(key); };\n mappedSequence.get = function (key, notSetValue) {\n var v = collection.get(key, NOT_SET);\n return v === NOT_SET\n ? notSetValue\n : mapper.call(context, v, key, collection);\n };\n mappedSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n return collection.__iterate(\n function (v, k, c) { return fn(mapper.call(context, v, k, c), k, this$1$1) !== false; },\n reverse\n );\n };\n mappedSequence.__iteratorUncached = function (type, reverse) {\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n return new Iterator(function () {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n return iteratorValue(\n type,\n key,\n mapper.call(context, entry[1], key, collection),\n step\n );\n });\n };\n return mappedSequence;\n}\n\nfunction reverseFactory(collection, useKeys) {\n var this$1$1 = this;\n\n var reversedSequence = makeSequence(collection);\n reversedSequence._iter = collection;\n reversedSequence.size = collection.size;\n reversedSequence.reverse = function () { return collection; };\n if (collection.flip) {\n reversedSequence.flip = function () {\n var flipSequence = flipFactory(collection);\n flipSequence.reverse = function () { return collection.flip(); };\n return flipSequence;\n };\n }\n reversedSequence.get = function (key, notSetValue) { return collection.get(useKeys ? key : -1 - key, notSetValue); };\n reversedSequence.has = function (key) { return collection.has(useKeys ? key : -1 - key); };\n reversedSequence.includes = function (value) { return collection.includes(value); };\n reversedSequence.cacheResult = cacheResultThrough;\n reversedSequence.__iterate = function (fn, reverse) {\n var this$1$1 = this;\n\n var i = 0;\n reverse && ensureSize(collection);\n return collection.__iterate(\n function (v, k) { return fn(v, useKeys ? k : reverse ? this$1$1.size - ++i : i++, this$1$1); },\n !reverse\n );\n };\n reversedSequence.__iterator = function (type, reverse) {\n var i = 0;\n reverse && ensureSize(collection);\n var iterator = collection.__iterator(ITERATE_ENTRIES, !reverse);\n return new Iterator(function () {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n return iteratorValue(\n type,\n useKeys ? entry[0] : reverse ? this$1$1.size - ++i : i++,\n entry[1],\n step\n );\n });\n };\n return reversedSequence;\n}\n\nfunction filterFactory(collection, predicate, context, useKeys) {\n var filterSequence = makeSequence(collection);\n if (useKeys) {\n filterSequence.has = function (key) {\n var v = collection.get(key, NOT_SET);\n return v !== NOT_SET && !!predicate.call(context, v, key, collection);\n };\n filterSequence.get = function (key, notSetValue) {\n var v = collection.get(key, NOT_SET);\n return v !== NOT_SET && predicate.call(context, v, key, collection)\n ? v\n : notSetValue;\n };\n }\n filterSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n var iterations = 0;\n collection.__iterate(function (v, k, c) {\n if (predicate.call(context, v, k, c)) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$1$1);\n }\n }, reverse);\n return iterations;\n };\n filterSequence.__iteratorUncached = function (type, reverse) {\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n var iterations = 0;\n return new Iterator(function () {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n var value = entry[1];\n if (predicate.call(context, value, key, collection)) {\n return iteratorValue(type, useKeys ? key : iterations++, value, step);\n }\n }\n });\n };\n return filterSequence;\n}\n\nfunction countByFactory(collection, grouper, context) {\n var groups = Map().asMutable();\n collection.__iterate(function (v, k) {\n groups.update(grouper.call(context, v, k, collection), 0, function (a) { return a + 1; });\n });\n return groups.asImmutable();\n}\n\nfunction groupByFactory(collection, grouper, context) {\n var isKeyedIter = isKeyed(collection);\n var groups = (isOrdered(collection) ? OrderedMap() : Map()).asMutable();\n collection.__iterate(function (v, k) {\n groups.update(\n grouper.call(context, v, k, collection),\n function (a) { return ((a = a || []), a.push(isKeyedIter ? [k, v] : v), a); }\n );\n });\n var coerce = collectionClass(collection);\n return groups.map(function (arr) { return reify(collection, coerce(arr)); }).asImmutable();\n}\n\nfunction partitionFactory(collection, predicate, context) {\n var isKeyedIter = isKeyed(collection);\n var groups = [[], []];\n collection.__iterate(function (v, k) {\n groups[predicate.call(context, v, k, collection) ? 1 : 0].push(\n isKeyedIter ? [k, v] : v\n );\n });\n var coerce = collectionClass(collection);\n return groups.map(function (arr) { return reify(collection, coerce(arr)); });\n}\n\nfunction sliceFactory(collection, begin, end, useKeys) {\n var originalSize = collection.size;\n\n if (wholeSlice(begin, end, originalSize)) {\n return collection;\n }\n\n var resolvedBegin = resolveBegin(begin, originalSize);\n var resolvedEnd = resolveEnd(end, originalSize);\n\n // begin or end will be NaN if they were provided as negative numbers and\n // this collection's size is unknown. In that case, cache first so there is\n // a known size and these do not resolve to NaN.\n if (resolvedBegin !== resolvedBegin || resolvedEnd !== resolvedEnd) {\n return sliceFactory(collection.toSeq().cacheResult(), begin, end, useKeys);\n }\n\n // Note: resolvedEnd is undefined when the original sequence's length is\n // unknown and this slice did not supply an end and should contain all\n // elements after resolvedBegin.\n // In that case, resolvedSize will be NaN and sliceSize will remain undefined.\n var resolvedSize = resolvedEnd - resolvedBegin;\n var sliceSize;\n if (resolvedSize === resolvedSize) {\n sliceSize = resolvedSize < 0 ? 0 : resolvedSize;\n }\n\n var sliceSeq = makeSequence(collection);\n\n // If collection.size is undefined, the size of the realized sliceSeq is\n // unknown at this point unless the number of items to slice is 0\n sliceSeq.size =\n sliceSize === 0 ? sliceSize : (collection.size && sliceSize) || undefined;\n\n if (!useKeys && isSeq(collection) && sliceSize >= 0) {\n sliceSeq.get = function (index, notSetValue) {\n index = wrapIndex(this, index);\n return index >= 0 && index < sliceSize\n ? collection.get(index + resolvedBegin, notSetValue)\n : notSetValue;\n };\n }\n\n sliceSeq.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n if (sliceSize === 0) {\n return 0;\n }\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var skipped = 0;\n var isSkipping = true;\n var iterations = 0;\n collection.__iterate(function (v, k) {\n if (!(isSkipping && (isSkipping = skipped++ < resolvedBegin))) {\n iterations++;\n return (\n fn(v, useKeys ? k : iterations - 1, this$1$1) !== false &&\n iterations !== sliceSize\n );\n }\n });\n return iterations;\n };\n\n sliceSeq.__iteratorUncached = function (type, reverse) {\n if (sliceSize !== 0 && reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n // Don't bother instantiating parent iterator if taking 0.\n if (sliceSize === 0) {\n return new Iterator(iteratorDone);\n }\n var iterator = collection.__iterator(type, reverse);\n var skipped = 0;\n var iterations = 0;\n return new Iterator(function () {\n while (skipped++ < resolvedBegin) {\n iterator.next();\n }\n if (++iterations > sliceSize) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (useKeys || type === ITERATE_VALUES || step.done) {\n return step;\n }\n if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations - 1, undefined, step);\n }\n return iteratorValue(type, iterations - 1, step.value[1], step);\n });\n };\n\n return sliceSeq;\n}\n\nfunction takeWhileFactory(collection, predicate, context) {\n var takeSequence = makeSequence(collection);\n takeSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterations = 0;\n collection.__iterate(\n function (v, k, c) { return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$1$1); }\n );\n return iterations;\n };\n takeSequence.__iteratorUncached = function (type, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n var iterating = true;\n return new Iterator(function () {\n if (!iterating) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var k = entry[0];\n var v = entry[1];\n if (!predicate.call(context, v, k, this$1$1)) {\n iterating = false;\n return iteratorDone();\n }\n return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n });\n };\n return takeSequence;\n}\n\nfunction skipWhileFactory(collection, predicate, context, useKeys) {\n var skipSequence = makeSequence(collection);\n skipSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var isSkipping = true;\n var iterations = 0;\n collection.__iterate(function (v, k, c) {\n if (!(isSkipping && (isSkipping = predicate.call(context, v, k, c)))) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$1$1);\n }\n });\n return iterations;\n };\n skipSequence.__iteratorUncached = function (type, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n var skipping = true;\n var iterations = 0;\n return new Iterator(function () {\n var step;\n var k;\n var v;\n do {\n step = iterator.next();\n if (step.done) {\n if (useKeys || type === ITERATE_VALUES) {\n return step;\n }\n if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations++, undefined, step);\n }\n return iteratorValue(type, iterations++, step.value[1], step);\n }\n var entry = step.value;\n k = entry[0];\n v = entry[1];\n skipping && (skipping = predicate.call(context, v, k, this$1$1));\n } while (skipping);\n return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n });\n };\n return skipSequence;\n}\n\nfunction concatFactory(collection, values) {\n var isKeyedCollection = isKeyed(collection);\n var iters = [collection]\n .concat(values)\n .map(function (v) {\n if (!isCollection(v)) {\n v = isKeyedCollection\n ? keyedSeqFromValue(v)\n : indexedSeqFromValue(Array.isArray(v) ? v : [v]);\n } else if (isKeyedCollection) {\n v = KeyedCollection(v);\n }\n return v;\n })\n .filter(function (v) { return v.size !== 0; });\n\n if (iters.length === 0) {\n return collection;\n }\n\n if (iters.length === 1) {\n var singleton = iters[0];\n if (\n singleton === collection ||\n (isKeyedCollection && isKeyed(singleton)) ||\n (isIndexed(collection) && isIndexed(singleton))\n ) {\n return singleton;\n }\n }\n\n var concatSeq = new ArraySeq(iters);\n if (isKeyedCollection) {\n concatSeq = concatSeq.toKeyedSeq();\n } else if (!isIndexed(collection)) {\n concatSeq = concatSeq.toSetSeq();\n }\n concatSeq = concatSeq.flatten(true);\n concatSeq.size = iters.reduce(function (sum, seq) {\n if (sum !== undefined) {\n var size = seq.size;\n if (size !== undefined) {\n return sum + size;\n }\n }\n }, 0);\n return concatSeq;\n}\n\nfunction flattenFactory(collection, depth, useKeys) {\n var flatSequence = makeSequence(collection);\n flatSequence.__iterateUncached = function (fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterations = 0;\n var stopped = false;\n function flatDeep(iter, currentDepth) {\n iter.__iterate(function (v, k) {\n if ((!depth || currentDepth < depth) && isCollection(v)) {\n flatDeep(v, currentDepth + 1);\n } else {\n iterations++;\n if (fn(v, useKeys ? k : iterations - 1, flatSequence) === false) {\n stopped = true;\n }\n }\n return !stopped;\n }, reverse);\n }\n flatDeep(collection, 0);\n return iterations;\n };\n flatSequence.__iteratorUncached = function (type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = collection.__iterator(type, reverse);\n var stack = [];\n var iterations = 0;\n return new Iterator(function () {\n while (iterator) {\n var step = iterator.next();\n if (step.done !== false) {\n iterator = stack.pop();\n continue;\n }\n var v = step.value;\n if (type === ITERATE_ENTRIES) {\n v = v[1];\n }\n if ((!depth || stack.length < depth) && isCollection(v)) {\n stack.push(iterator);\n iterator = v.__iterator(type, reverse);\n } else {\n return useKeys ? step : iteratorValue(type, iterations++, v, step);\n }\n }\n return iteratorDone();\n });\n };\n return flatSequence;\n}\n\nfunction flatMapFactory(collection, mapper, context) {\n var coerce = collectionClass(collection);\n return collection\n .toSeq()\n .map(function (v, k) { return coerce(mapper.call(context, v, k, collection)); })\n .flatten(true);\n}\n\nfunction interposeFactory(collection, separator) {\n var interposedSequence = makeSequence(collection);\n interposedSequence.size = collection.size && collection.size * 2 - 1;\n interposedSequence.__iterateUncached = function (fn, reverse) {\n var this$1$1 = this;\n\n var iterations = 0;\n collection.__iterate(\n function (v) { return (!iterations || fn(separator, iterations++, this$1$1) !== false) &&\n fn(v, iterations++, this$1$1) !== false; },\n reverse\n );\n return iterations;\n };\n interposedSequence.__iteratorUncached = function (type, reverse) {\n var iterator = collection.__iterator(ITERATE_VALUES, reverse);\n var iterations = 0;\n var step;\n return new Iterator(function () {\n if (!step || iterations % 2) {\n step = iterator.next();\n if (step.done) {\n return step;\n }\n }\n return iterations % 2\n ? iteratorValue(type, iterations++, separator)\n : iteratorValue(type, iterations++, step.value, step);\n });\n };\n return interposedSequence;\n}\n\nfunction sortFactory(collection, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n var isKeyedCollection = isKeyed(collection);\n var index = 0;\n var entries = collection\n .toSeq()\n .map(function (v, k) { return [k, v, index++, mapper ? mapper(v, k, collection) : v]; })\n .valueSeq()\n .toArray();\n entries\n .sort(function (a, b) { return comparator(a[3], b[3]) || a[2] - b[2]; })\n .forEach(\n isKeyedCollection\n ? function (v, i) {\n entries[i].length = 2;\n }\n : function (v, i) {\n entries[i] = v[1];\n }\n );\n return isKeyedCollection\n ? KeyedSeq(entries)\n : isIndexed(collection)\n ? IndexedSeq(entries)\n : SetSeq(entries);\n}\n\nfunction maxFactory(collection, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n if (mapper) {\n var entry = collection\n .toSeq()\n .map(function (v, k) { return [v, mapper(v, k, collection)]; })\n .reduce(function (a, b) { return (maxCompare(comparator, a[1], b[1]) ? b : a); });\n return entry && entry[0];\n }\n return collection.reduce(function (a, b) { return (maxCompare(comparator, a, b) ? b : a); });\n}\n\nfunction maxCompare(comparator, a, b) {\n var comp = comparator(b, a);\n // b is considered the new max if the comparator declares them equal, but\n // they are not equal and b is in fact a nullish value.\n return (\n (comp === 0 && b !== a && (b === undefined || b === null || b !== b)) ||\n comp > 0\n );\n}\n\nfunction zipWithFactory(keyIter, zipper, iters, zipAll) {\n var zipSequence = makeSequence(keyIter);\n var sizes = new ArraySeq(iters).map(function (i) { return i.size; });\n zipSequence.size = zipAll ? sizes.max() : sizes.min();\n // Note: this a generic base implementation of __iterate in terms of\n // __iterator which may be more generically useful in the future.\n zipSequence.__iterate = function (fn, reverse) {\n /* generic:\n var iterator = this.__iterator(ITERATE_ENTRIES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n iterations++;\n if (fn(step.value[1], step.value[0], this) === false) {\n break;\n }\n }\n return iterations;\n */\n // indexed:\n var iterator = this.__iterator(ITERATE_VALUES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n return iterations;\n };\n zipSequence.__iteratorUncached = function (type, reverse) {\n var iterators = iters.map(\n function (i) { return ((i = Collection(i)), getIterator(reverse ? i.reverse() : i)); }\n );\n var iterations = 0;\n var isDone = false;\n return new Iterator(function () {\n var steps;\n if (!isDone) {\n steps = iterators.map(function (i) { return i.next(); });\n isDone = zipAll ? steps.every(function (s) { return s.done; }) : steps.some(function (s) { return s.done; });\n }\n if (isDone) {\n return iteratorDone();\n }\n return iteratorValue(\n type,\n iterations++,\n zipper.apply(\n null,\n steps.map(function (s) { return s.value; })\n )\n );\n });\n };\n return zipSequence;\n}\n\n// #pragma Helper Functions\n\nfunction reify(iter, seq) {\n return iter === seq ? iter : isSeq(iter) ? seq : iter.constructor(seq);\n}\n\nfunction validateEntry(entry) {\n if (entry !== Object(entry)) {\n throw new TypeError('Expected [K, V] tuple: ' + entry);\n }\n}\n\nfunction collectionClass(collection) {\n return isKeyed(collection)\n ? KeyedCollection\n : isIndexed(collection)\n ? IndexedCollection\n : SetCollection;\n}\n\nfunction makeSequence(collection) {\n return Object.create(\n (isKeyed(collection)\n ? KeyedSeq\n : isIndexed(collection)\n ? IndexedSeq\n : SetSeq\n ).prototype\n );\n}\n\nfunction cacheResultThrough() {\n if (this._iter.cacheResult) {\n this._iter.cacheResult();\n this.size = this._iter.size;\n return this;\n }\n return Seq.prototype.cacheResult.call(this);\n}\n\nfunction defaultComparator(a, b) {\n if (a === undefined && b === undefined) {\n return 0;\n }\n\n if (a === undefined) {\n return 1;\n }\n\n if (b === undefined) {\n return -1;\n }\n\n return a > b ? 1 : a < b ? -1 : 0;\n}\n\nfunction arrCopy(arr, offset) {\n offset = offset || 0;\n var len = Math.max(0, arr.length - offset);\n var newArr = new Array(len);\n for (var ii = 0; ii < len; ii++) {\n newArr[ii] = arr[ii + offset];\n }\n return newArr;\n}\n\nfunction invariant(condition, error) {\n if (!condition) { throw new Error(error); }\n}\n\nfunction assertNotInfinite(size) {\n invariant(\n size !== Infinity,\n 'Cannot perform this action with an infinite size.'\n );\n}\n\nfunction coerceKeyPath(keyPath) {\n if (isArrayLike(keyPath) && typeof keyPath !== 'string') {\n return keyPath;\n }\n if (isOrdered(keyPath)) {\n return keyPath.toArray();\n }\n throw new TypeError(\n 'Invalid keyPath: expected Ordered Collection or Array: ' + keyPath\n );\n}\n\nvar toString = Object.prototype.toString;\n\nfunction isPlainObject(value) {\n // The base prototype's toString deals with Argument objects and native namespaces like Math\n if (\n !value ||\n typeof value !== 'object' ||\n toString.call(value) !== '[object Object]'\n ) {\n return false;\n }\n\n var proto = Object.getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n\n // Iteratively going up the prototype chain is needed for cross-realm environments (differing contexts, iframes, etc)\n var parentProto = proto;\n var nextProto = Object.getPrototypeOf(proto);\n while (nextProto !== null) {\n parentProto = nextProto;\n nextProto = Object.getPrototypeOf(parentProto);\n }\n return parentProto === proto;\n}\n\n/**\n * Returns true if the value is a potentially-persistent data structure, either\n * provided by Immutable.js or a plain Array or Object.\n */\nfunction isDataStructure(value) {\n return (\n typeof value === 'object' &&\n (isImmutable(value) || Array.isArray(value) || isPlainObject(value))\n );\n}\n\nfunction quoteString(value) {\n try {\n return typeof value === 'string' ? JSON.stringify(value) : String(value);\n } catch (_ignoreError) {\n return JSON.stringify(value);\n }\n}\n\nfunction has(collection, key) {\n return isImmutable(collection)\n ? collection.has(key)\n : isDataStructure(collection) && hasOwnProperty.call(collection, key);\n}\n\nfunction get(collection, key, notSetValue) {\n return isImmutable(collection)\n ? collection.get(key, notSetValue)\n : !has(collection, key)\n ? notSetValue\n : typeof collection.get === 'function'\n ? collection.get(key)\n : collection[key];\n}\n\nfunction shallowCopy(from) {\n if (Array.isArray(from)) {\n return arrCopy(from);\n }\n var to = {};\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n return to;\n}\n\nfunction remove(collection, key) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot update non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n if (!collection.remove) {\n throw new TypeError(\n 'Cannot update immutable value without .remove() method: ' + collection\n );\n }\n return collection.remove(key);\n }\n if (!hasOwnProperty.call(collection, key)) {\n return collection;\n }\n var collectionCopy = shallowCopy(collection);\n if (Array.isArray(collectionCopy)) {\n collectionCopy.splice(key, 1);\n } else {\n delete collectionCopy[key];\n }\n return collectionCopy;\n}\n\nfunction set(collection, key, value) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot update non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n if (!collection.set) {\n throw new TypeError(\n 'Cannot update immutable value without .set() method: ' + collection\n );\n }\n return collection.set(key, value);\n }\n if (hasOwnProperty.call(collection, key) && value === collection[key]) {\n return collection;\n }\n var collectionCopy = shallowCopy(collection);\n collectionCopy[key] = value;\n return collectionCopy;\n}\n\nfunction updateIn$1(collection, keyPath, notSetValue, updater) {\n if (!updater) {\n updater = notSetValue;\n notSetValue = undefined;\n }\n var updatedValue = updateInDeeply(\n isImmutable(collection),\n collection,\n coerceKeyPath(keyPath),\n 0,\n notSetValue,\n updater\n );\n return updatedValue === NOT_SET ? notSetValue : updatedValue;\n}\n\nfunction updateInDeeply(\n inImmutable,\n existing,\n keyPath,\n i,\n notSetValue,\n updater\n) {\n var wasNotSet = existing === NOT_SET;\n if (i === keyPath.length) {\n var existingValue = wasNotSet ? notSetValue : existing;\n var newValue = updater(existingValue);\n return newValue === existingValue ? existing : newValue;\n }\n if (!wasNotSet && !isDataStructure(existing)) {\n throw new TypeError(\n 'Cannot update within non-data-structure value in path [' +\n keyPath.slice(0, i).map(quoteString) +\n ']: ' +\n existing\n );\n }\n var key = keyPath[i];\n var nextExisting = wasNotSet ? NOT_SET : get(existing, key, NOT_SET);\n var nextUpdated = updateInDeeply(\n nextExisting === NOT_SET ? inImmutable : isImmutable(nextExisting),\n nextExisting,\n keyPath,\n i + 1,\n notSetValue,\n updater\n );\n return nextUpdated === nextExisting\n ? existing\n : nextUpdated === NOT_SET\n ? remove(existing, key)\n : set(\n wasNotSet ? (inImmutable ? emptyMap() : {}) : existing,\n key,\n nextUpdated\n );\n}\n\nfunction setIn$1(collection, keyPath, value) {\n return updateIn$1(collection, keyPath, NOT_SET, function () { return value; });\n}\n\nfunction setIn(keyPath, v) {\n return setIn$1(this, keyPath, v);\n}\n\nfunction removeIn(collection, keyPath) {\n return updateIn$1(collection, keyPath, function () { return NOT_SET; });\n}\n\nfunction deleteIn(keyPath) {\n return removeIn(this, keyPath);\n}\n\nfunction update$1(collection, key, notSetValue, updater) {\n return updateIn$1(collection, [key], notSetValue, updater);\n}\n\nfunction update(key, notSetValue, updater) {\n return arguments.length === 1\n ? key(this)\n : update$1(this, key, notSetValue, updater);\n}\n\nfunction updateIn(keyPath, notSetValue, updater) {\n return updateIn$1(this, keyPath, notSetValue, updater);\n}\n\nfunction merge$1() {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n return mergeIntoKeyedWith(this, iters);\n}\n\nfunction mergeWith$1(merger) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n if (typeof merger !== 'function') {\n throw new TypeError('Invalid merger function: ' + merger);\n }\n return mergeIntoKeyedWith(this, iters, merger);\n}\n\nfunction mergeIntoKeyedWith(collection, collections, merger) {\n var iters = [];\n for (var ii = 0; ii < collections.length; ii++) {\n var collection$1 = KeyedCollection(collections[ii]);\n if (collection$1.size !== 0) {\n iters.push(collection$1);\n }\n }\n if (iters.length === 0) {\n return collection;\n }\n if (\n collection.toSeq().size === 0 &&\n !collection.__ownerID &&\n iters.length === 1\n ) {\n return collection.constructor(iters[0]);\n }\n return collection.withMutations(function (collection) {\n var mergeIntoCollection = merger\n ? function (value, key) {\n update$1(collection, key, NOT_SET, function (oldVal) { return oldVal === NOT_SET ? value : merger(oldVal, value, key); }\n );\n }\n : function (value, key) {\n collection.set(key, value);\n };\n for (var ii = 0; ii < iters.length; ii++) {\n iters[ii].forEach(mergeIntoCollection);\n }\n });\n}\n\nfunction merge(collection) {\n var sources = [], len = arguments.length - 1;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];\n\n return mergeWithSources(collection, sources);\n}\n\nfunction mergeWith(merger, collection) {\n var sources = [], len = arguments.length - 2;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 2 ];\n\n return mergeWithSources(collection, sources, merger);\n}\n\nfunction mergeDeep$1(collection) {\n var sources = [], len = arguments.length - 1;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];\n\n return mergeDeepWithSources(collection, sources);\n}\n\nfunction mergeDeepWith$1(merger, collection) {\n var sources = [], len = arguments.length - 2;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 2 ];\n\n return mergeDeepWithSources(collection, sources, merger);\n}\n\nfunction mergeDeepWithSources(collection, sources, merger) {\n return mergeWithSources(collection, sources, deepMergerWith(merger));\n}\n\nfunction mergeWithSources(collection, sources, merger) {\n if (!isDataStructure(collection)) {\n throw new TypeError(\n 'Cannot merge into non-data-structure value: ' + collection\n );\n }\n if (isImmutable(collection)) {\n return typeof merger === 'function' && collection.mergeWith\n ? collection.mergeWith.apply(collection, [ merger ].concat( sources ))\n : collection.merge\n ? collection.merge.apply(collection, sources)\n : collection.concat.apply(collection, sources);\n }\n var isArray = Array.isArray(collection);\n var merged = collection;\n var Collection = isArray ? IndexedCollection : KeyedCollection;\n var mergeItem = isArray\n ? function (value) {\n // Copy on write\n if (merged === collection) {\n merged = shallowCopy(merged);\n }\n merged.push(value);\n }\n : function (value, key) {\n var hasVal = hasOwnProperty.call(merged, key);\n var nextVal =\n hasVal && merger ? merger(merged[key], value, key) : value;\n if (!hasVal || nextVal !== merged[key]) {\n // Copy on write\n if (merged === collection) {\n merged = shallowCopy(merged);\n }\n merged[key] = nextVal;\n }\n };\n for (var i = 0; i < sources.length; i++) {\n Collection(sources[i]).forEach(mergeItem);\n }\n return merged;\n}\n\nfunction deepMergerWith(merger) {\n function deepMerger(oldValue, newValue, key) {\n return isDataStructure(oldValue) &&\n isDataStructure(newValue) &&\n areMergeable(oldValue, newValue)\n ? mergeWithSources(oldValue, [newValue], deepMerger)\n : merger\n ? merger(oldValue, newValue, key)\n : newValue;\n }\n return deepMerger;\n}\n\n/**\n * It's unclear what the desired behavior is for merging two collections that\n * fall into separate categories between keyed, indexed, or set-like, so we only\n * consider them mergeable if they fall into the same category.\n */\nfunction areMergeable(oldDataStructure, newDataStructure) {\n var oldSeq = Seq(oldDataStructure);\n var newSeq = Seq(newDataStructure);\n // This logic assumes that a sequence can only fall into one of the three\n // categories mentioned above (since there's no `isSetLike()` method).\n return (\n isIndexed(oldSeq) === isIndexed(newSeq) &&\n isKeyed(oldSeq) === isKeyed(newSeq)\n );\n}\n\nfunction mergeDeep() {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n return mergeDeepWithSources(this, iters);\n}\n\nfunction mergeDeepWith(merger) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return mergeDeepWithSources(this, iters, merger);\n}\n\nfunction mergeIn(keyPath) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return updateIn$1(this, keyPath, emptyMap(), function (m) { return mergeWithSources(m, iters); });\n}\n\nfunction mergeDeepIn(keyPath) {\n var iters = [], len = arguments.length - 1;\n while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n return updateIn$1(this, keyPath, emptyMap(), function (m) { return mergeDeepWithSources(m, iters); }\n );\n}\n\nfunction withMutations(fn) {\n var mutable = this.asMutable();\n fn(mutable);\n return mutable.wasAltered() ? mutable.__ensureOwner(this.__ownerID) : this;\n}\n\nfunction asMutable() {\n return this.__ownerID ? this : this.__ensureOwner(new OwnerID());\n}\n\nfunction asImmutable() {\n return this.__ensureOwner();\n}\n\nfunction wasAltered() {\n return this.__altered;\n}\n\nvar Map = /*@__PURE__*/(function (KeyedCollection) {\n function Map(value) {\n return value === undefined || value === null\n ? emptyMap()\n : isMap(value) && !isOrdered(value)\n ? value\n : emptyMap().withMutations(function (map) {\n var iter = KeyedCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v, k) { return map.set(k, v); });\n });\n }\n\n if ( KeyedCollection ) Map.__proto__ = KeyedCollection;\n Map.prototype = Object.create( KeyedCollection && KeyedCollection.prototype );\n Map.prototype.constructor = Map;\n\n Map.of = function of () {\n var keyValues = [], len = arguments.length;\n while ( len-- ) keyValues[ len ] = arguments[ len ];\n\n return emptyMap().withMutations(function (map) {\n for (var i = 0; i < keyValues.length; i += 2) {\n if (i + 1 >= keyValues.length) {\n throw new Error('Missing value for key: ' + keyValues[i]);\n }\n map.set(keyValues[i], keyValues[i + 1]);\n }\n });\n };\n\n Map.prototype.toString = function toString () {\n return this.__toString('Map {', '}');\n };\n\n // @pragma Access\n\n Map.prototype.get = function get (k, notSetValue) {\n return this._root\n ? this._root.get(0, undefined, k, notSetValue)\n : notSetValue;\n };\n\n // @pragma Modification\n\n Map.prototype.set = function set (k, v) {\n return updateMap(this, k, v);\n };\n\n Map.prototype.remove = function remove (k) {\n return updateMap(this, k, NOT_SET);\n };\n\n Map.prototype.deleteAll = function deleteAll (keys) {\n var collection = Collection(keys);\n\n if (collection.size === 0) {\n return this;\n }\n\n return this.withMutations(function (map) {\n collection.forEach(function (key) { return map.remove(key); });\n });\n };\n\n Map.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._root = null;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyMap();\n };\n\n // @pragma Composition\n\n Map.prototype.sort = function sort (comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator));\n };\n\n Map.prototype.sortBy = function sortBy (mapper, comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator, mapper));\n };\n\n Map.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n return this.withMutations(function (map) {\n map.forEach(function (value, key) {\n map.set(key, mapper.call(context, value, key, this$1$1));\n });\n });\n };\n\n // @pragma Mutability\n\n Map.prototype.__iterator = function __iterator (type, reverse) {\n return new MapIterator(this, type, reverse);\n };\n\n Map.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n var iterations = 0;\n this._root &&\n this._root.iterate(function (entry) {\n iterations++;\n return fn(entry[1], entry[0], this$1$1);\n }, reverse);\n return iterations;\n };\n\n Map.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyMap();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeMap(this.size, this._root, ownerID, this.__hash);\n };\n\n return Map;\n}(KeyedCollection));\n\nMap.isMap = isMap;\n\nvar MapPrototype = Map.prototype;\nMapPrototype[IS_MAP_SYMBOL] = true;\nMapPrototype[DELETE] = MapPrototype.remove;\nMapPrototype.removeAll = MapPrototype.deleteAll;\nMapPrototype.setIn = setIn;\nMapPrototype.removeIn = MapPrototype.deleteIn = deleteIn;\nMapPrototype.update = update;\nMapPrototype.updateIn = updateIn;\nMapPrototype.merge = MapPrototype.concat = merge$1;\nMapPrototype.mergeWith = mergeWith$1;\nMapPrototype.mergeDeep = mergeDeep;\nMapPrototype.mergeDeepWith = mergeDeepWith;\nMapPrototype.mergeIn = mergeIn;\nMapPrototype.mergeDeepIn = mergeDeepIn;\nMapPrototype.withMutations = withMutations;\nMapPrototype.wasAltered = wasAltered;\nMapPrototype.asImmutable = asImmutable;\nMapPrototype['@@transducer/init'] = MapPrototype.asMutable = asMutable;\nMapPrototype['@@transducer/step'] = function (result, arr) {\n return result.set(arr[0], arr[1]);\n};\nMapPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\n// #pragma Trie Nodes\n\nvar ArrayMapNode = function ArrayMapNode(ownerID, entries) {\n this.ownerID = ownerID;\n this.entries = entries;\n};\n\nArrayMapNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n};\n\nArrayMapNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n\n var entries = this.entries;\n var idx = 0;\n var len = entries.length;\n for (; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && entries.length === 1) {\n return; // undefined\n }\n\n if (!exists && !removed && entries.length >= MAX_ARRAY_MAP_SIZE) {\n return createNodes(ownerID, entries, key, value);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1\n ? newEntries.pop()\n : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new ArrayMapNode(ownerID, newEntries);\n};\n\nvar BitmapIndexedNode = function BitmapIndexedNode(ownerID, bitmap, nodes) {\n this.ownerID = ownerID;\n this.bitmap = bitmap;\n this.nodes = nodes;\n};\n\nBitmapIndexedNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var bit = 1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK);\n var bitmap = this.bitmap;\n return (bitmap & bit) === 0\n ? notSetValue\n : this.nodes[popCount(bitmap & (bit - 1))].get(\n shift + SHIFT,\n keyHash,\n key,\n notSetValue\n );\n};\n\nBitmapIndexedNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var keyHashFrag = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var bit = 1 << keyHashFrag;\n var bitmap = this.bitmap;\n var exists = (bitmap & bit) !== 0;\n\n if (!exists && value === NOT_SET) {\n return this;\n }\n\n var idx = popCount(bitmap & (bit - 1));\n var nodes = this.nodes;\n var node = exists ? nodes[idx] : undefined;\n var newNode = updateNode(\n node,\n ownerID,\n shift + SHIFT,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\n\n if (newNode === node) {\n return this;\n }\n\n if (!exists && newNode && nodes.length >= MAX_BITMAP_INDEXED_SIZE) {\n return expandNodes(ownerID, nodes, bitmap, keyHashFrag, newNode);\n }\n\n if (\n exists &&\n !newNode &&\n nodes.length === 2 &&\n isLeafNode(nodes[idx ^ 1])\n ) {\n return nodes[idx ^ 1];\n }\n\n if (exists && newNode && nodes.length === 1 && isLeafNode(newNode)) {\n return newNode;\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newBitmap = exists ? (newNode ? bitmap : bitmap ^ bit) : bitmap | bit;\n var newNodes = exists\n ? newNode\n ? setAt(nodes, idx, newNode, isEditable)\n : spliceOut(nodes, idx, isEditable)\n : spliceIn(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.bitmap = newBitmap;\n this.nodes = newNodes;\n return this;\n }\n\n return new BitmapIndexedNode(ownerID, newBitmap, newNodes);\n};\n\nvar HashArrayMapNode = function HashArrayMapNode(ownerID, count, nodes) {\n this.ownerID = ownerID;\n this.count = count;\n this.nodes = nodes;\n};\n\nHashArrayMapNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var node = this.nodes[idx];\n return node\n ? node.get(shift + SHIFT, keyHash, key, notSetValue)\n : notSetValue;\n};\n\nHashArrayMapNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var removed = value === NOT_SET;\n var nodes = this.nodes;\n var node = nodes[idx];\n\n if (removed && !node) {\n return this;\n }\n\n var newNode = updateNode(\n node,\n ownerID,\n shift + SHIFT,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\n if (newNode === node) {\n return this;\n }\n\n var newCount = this.count;\n if (!node) {\n newCount++;\n } else if (!newNode) {\n newCount--;\n if (newCount < MIN_HASH_ARRAY_MAP_SIZE) {\n return packNodes(ownerID, nodes, newCount, idx);\n }\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newNodes = setAt(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.count = newCount;\n this.nodes = newNodes;\n return this;\n }\n\n return new HashArrayMapNode(ownerID, newCount, newNodes);\n};\n\nvar HashCollisionNode = function HashCollisionNode(ownerID, keyHash, entries) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entries = entries;\n};\n\nHashCollisionNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n};\n\nHashCollisionNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n\n var removed = value === NOT_SET;\n\n if (keyHash !== this.keyHash) {\n if (removed) {\n return this;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, keyHash, [key, value]);\n }\n\n var entries = this.entries;\n var idx = 0;\n var len = entries.length;\n for (; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && len === 2) {\n return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1\n ? newEntries.pop()\n : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new HashCollisionNode(ownerID, this.keyHash, newEntries);\n};\n\nvar ValueNode = function ValueNode(ownerID, keyHash, entry) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entry = entry;\n};\n\nValueNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n return is(key, this.entry[0]) ? this.entry[1] : notSetValue;\n};\n\nValueNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n var keyMatch = is(key, this.entry[0]);\n if (keyMatch ? value === this.entry[1] : removed) {\n return this;\n }\n\n SetRef(didAlter);\n\n if (removed) {\n SetRef(didChangeSize);\n return; // undefined\n }\n\n if (keyMatch) {\n if (ownerID && ownerID === this.ownerID) {\n this.entry[1] = value;\n return this;\n }\n return new ValueNode(ownerID, this.keyHash, [key, value]);\n }\n\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, hash(key), [key, value]);\n};\n\n// #pragma Iterators\n\nArrayMapNode.prototype.iterate = HashCollisionNode.prototype.iterate =\n function (fn, reverse) {\n var entries = this.entries;\n for (var ii = 0, maxIndex = entries.length - 1; ii <= maxIndex; ii++) {\n if (fn(entries[reverse ? maxIndex - ii : ii]) === false) {\n return false;\n }\n }\n };\n\nBitmapIndexedNode.prototype.iterate = HashArrayMapNode.prototype.iterate =\n function (fn, reverse) {\n var nodes = this.nodes;\n for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) {\n var node = nodes[reverse ? maxIndex - ii : ii];\n if (node && node.iterate(fn, reverse) === false) {\n return false;\n }\n }\n };\n\n// eslint-disable-next-line no-unused-vars\nValueNode.prototype.iterate = function (fn, reverse) {\n return fn(this.entry);\n};\n\nvar MapIterator = /*@__PURE__*/(function (Iterator) {\n function MapIterator(map, type, reverse) {\n this._type = type;\n this._reverse = reverse;\n this._stack = map._root && mapIteratorFrame(map._root);\n }\n\n if ( Iterator ) MapIterator.__proto__ = Iterator;\n MapIterator.prototype = Object.create( Iterator && Iterator.prototype );\n MapIterator.prototype.constructor = MapIterator;\n\n MapIterator.prototype.next = function next () {\n var type = this._type;\n var stack = this._stack;\n while (stack) {\n var node = stack.node;\n var index = stack.index++;\n var maxIndex = (void 0);\n if (node.entry) {\n if (index === 0) {\n return mapIteratorValue(type, node.entry);\n }\n } else if (node.entries) {\n maxIndex = node.entries.length - 1;\n if (index <= maxIndex) {\n return mapIteratorValue(\n type,\n node.entries[this._reverse ? maxIndex - index : index]\n );\n }\n } else {\n maxIndex = node.nodes.length - 1;\n if (index <= maxIndex) {\n var subNode = node.nodes[this._reverse ? maxIndex - index : index];\n if (subNode) {\n if (subNode.entry) {\n return mapIteratorValue(type, subNode.entry);\n }\n stack = this._stack = mapIteratorFrame(subNode, stack);\n }\n continue;\n }\n }\n stack = this._stack = this._stack.__prev;\n }\n return iteratorDone();\n };\n\n return MapIterator;\n}(Iterator));\n\nfunction mapIteratorValue(type, entry) {\n return iteratorValue(type, entry[0], entry[1]);\n}\n\nfunction mapIteratorFrame(node, prev) {\n return {\n node: node,\n index: 0,\n __prev: prev,\n };\n}\n\nfunction makeMap(size, root, ownerID, hash) {\n var map = Object.create(MapPrototype);\n map.size = size;\n map._root = root;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n}\n\nvar EMPTY_MAP;\nfunction emptyMap() {\n return EMPTY_MAP || (EMPTY_MAP = makeMap(0));\n}\n\nfunction updateMap(map, k, v) {\n var newRoot;\n var newSize;\n if (!map._root) {\n if (v === NOT_SET) {\n return map;\n }\n newSize = 1;\n newRoot = new ArrayMapNode(map.__ownerID, [[k, v]]);\n } else {\n var didChangeSize = MakeRef();\n var didAlter = MakeRef();\n newRoot = updateNode(\n map._root,\n map.__ownerID,\n 0,\n undefined,\n k,\n v,\n didChangeSize,\n didAlter\n );\n if (!didAlter.value) {\n return map;\n }\n newSize = map.size + (didChangeSize.value ? (v === NOT_SET ? -1 : 1) : 0);\n }\n if (map.__ownerID) {\n map.size = newSize;\n map._root = newRoot;\n map.__hash = undefined;\n map.__altered = true;\n return map;\n }\n return newRoot ? makeMap(newSize, newRoot) : emptyMap();\n}\n\nfunction updateNode(\n node,\n ownerID,\n shift,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n) {\n if (!node) {\n if (value === NOT_SET) {\n return node;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return new ValueNode(ownerID, keyHash, [key, value]);\n }\n return node.update(\n ownerID,\n shift,\n keyHash,\n key,\n value,\n didChangeSize,\n didAlter\n );\n}\n\nfunction isLeafNode(node) {\n return (\n node.constructor === ValueNode || node.constructor === HashCollisionNode\n );\n}\n\nfunction mergeIntoNode(node, ownerID, shift, keyHash, entry) {\n if (node.keyHash === keyHash) {\n return new HashCollisionNode(ownerID, keyHash, [node.entry, entry]);\n }\n\n var idx1 = (shift === 0 ? node.keyHash : node.keyHash >>> shift) & MASK;\n var idx2 = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n\n var newNode;\n var nodes =\n idx1 === idx2\n ? [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)]\n : ((newNode = new ValueNode(ownerID, keyHash, entry)),\n idx1 < idx2 ? [node, newNode] : [newNode, node]);\n\n return new BitmapIndexedNode(ownerID, (1 << idx1) | (1 << idx2), nodes);\n}\n\nfunction createNodes(ownerID, entries, key, value) {\n if (!ownerID) {\n ownerID = new OwnerID();\n }\n var node = new ValueNode(ownerID, hash(key), [key, value]);\n for (var ii = 0; ii < entries.length; ii++) {\n var entry = entries[ii];\n node = node.update(ownerID, 0, undefined, entry[0], entry[1]);\n }\n return node;\n}\n\nfunction packNodes(ownerID, nodes, count, excluding) {\n var bitmap = 0;\n var packedII = 0;\n var packedNodes = new Array(count);\n for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) {\n var node = nodes[ii];\n if (node !== undefined && ii !== excluding) {\n bitmap |= bit;\n packedNodes[packedII++] = node;\n }\n }\n return new BitmapIndexedNode(ownerID, bitmap, packedNodes);\n}\n\nfunction expandNodes(ownerID, nodes, bitmap, including, node) {\n var count = 0;\n var expandedNodes = new Array(SIZE);\n for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) {\n expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined;\n }\n expandedNodes[including] = node;\n return new HashArrayMapNode(ownerID, count + 1, expandedNodes);\n}\n\nfunction popCount(x) {\n x -= (x >> 1) & 0x55555555;\n x = (x & 0x33333333) + ((x >> 2) & 0x33333333);\n x = (x + (x >> 4)) & 0x0f0f0f0f;\n x += x >> 8;\n x += x >> 16;\n return x & 0x7f;\n}\n\nfunction setAt(array, idx, val, canEdit) {\n var newArray = canEdit ? array : arrCopy(array);\n newArray[idx] = val;\n return newArray;\n}\n\nfunction spliceIn(array, idx, val, canEdit) {\n var newLen = array.length + 1;\n if (canEdit && idx + 1 === newLen) {\n array[idx] = val;\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n newArray[ii] = val;\n after = -1;\n } else {\n newArray[ii] = array[ii + after];\n }\n }\n return newArray;\n}\n\nfunction spliceOut(array, idx, canEdit) {\n var newLen = array.length - 1;\n if (canEdit && idx === newLen) {\n array.pop();\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n after = 1;\n }\n newArray[ii] = array[ii + after];\n }\n return newArray;\n}\n\nvar MAX_ARRAY_MAP_SIZE = SIZE / 4;\nvar MAX_BITMAP_INDEXED_SIZE = SIZE / 2;\nvar MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4;\n\nvar IS_LIST_SYMBOL = '@@__IMMUTABLE_LIST__@@';\n\nfunction isList(maybeList) {\n return Boolean(maybeList && maybeList[IS_LIST_SYMBOL]);\n}\n\nvar List = /*@__PURE__*/(function (IndexedCollection) {\n function List(value) {\n var empty = emptyList();\n if (value === undefined || value === null) {\n return empty;\n }\n if (isList(value)) {\n return value;\n }\n var iter = IndexedCollection(value);\n var size = iter.size;\n if (size === 0) {\n return empty;\n }\n assertNotInfinite(size);\n if (size > 0 && size < SIZE) {\n return makeList(0, size, SHIFT, null, new VNode(iter.toArray()));\n }\n return empty.withMutations(function (list) {\n list.setSize(size);\n iter.forEach(function (v, i) { return list.set(i, v); });\n });\n }\n\n if ( IndexedCollection ) List.__proto__ = IndexedCollection;\n List.prototype = Object.create( IndexedCollection && IndexedCollection.prototype );\n List.prototype.constructor = List;\n\n List.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n List.prototype.toString = function toString () {\n return this.__toString('List [', ']');\n };\n\n // @pragma Access\n\n List.prototype.get = function get (index, notSetValue) {\n index = wrapIndex(this, index);\n if (index >= 0 && index < this.size) {\n index += this._origin;\n var node = listNodeFor(this, index);\n return node && node.array[index & MASK];\n }\n return notSetValue;\n };\n\n // @pragma Modification\n\n List.prototype.set = function set (index, value) {\n return updateList(this, index, value);\n };\n\n List.prototype.remove = function remove (index) {\n return !this.has(index)\n ? this\n : index === 0\n ? this.shift()\n : index === this.size - 1\n ? this.pop()\n : this.splice(index, 1);\n };\n\n List.prototype.insert = function insert (index, value) {\n return this.splice(index, 0, value);\n };\n\n List.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = this._origin = this._capacity = 0;\n this._level = SHIFT;\n this._root = this._tail = this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyList();\n };\n\n List.prototype.push = function push (/*...values*/) {\n var values = arguments;\n var oldSize = this.size;\n return this.withMutations(function (list) {\n setListBounds(list, 0, oldSize + values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(oldSize + ii, values[ii]);\n }\n });\n };\n\n List.prototype.pop = function pop () {\n return setListBounds(this, 0, -1);\n };\n\n List.prototype.unshift = function unshift (/*...values*/) {\n var values = arguments;\n return this.withMutations(function (list) {\n setListBounds(list, -values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(ii, values[ii]);\n }\n });\n };\n\n List.prototype.shift = function shift () {\n return setListBounds(this, 1);\n };\n\n // @pragma Composition\n\n List.prototype.concat = function concat (/*...collections*/) {\n var arguments$1 = arguments;\n\n var seqs = [];\n for (var i = 0; i < arguments.length; i++) {\n var argument = arguments$1[i];\n var seq = IndexedCollection(\n typeof argument !== 'string' && hasIterator(argument)\n ? argument\n : [argument]\n );\n if (seq.size !== 0) {\n seqs.push(seq);\n }\n }\n if (seqs.length === 0) {\n return this;\n }\n if (this.size === 0 && !this.__ownerID && seqs.length === 1) {\n return this.constructor(seqs[0]);\n }\n return this.withMutations(function (list) {\n seqs.forEach(function (seq) { return seq.forEach(function (value) { return list.push(value); }); });\n });\n };\n\n List.prototype.setSize = function setSize (size) {\n return setListBounds(this, 0, size);\n };\n\n List.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n return this.withMutations(function (list) {\n for (var i = 0; i < this$1$1.size; i++) {\n list.set(i, mapper.call(context, list.get(i), i, this$1$1));\n }\n });\n };\n\n // @pragma Iteration\n\n List.prototype.slice = function slice (begin, end) {\n var size = this.size;\n if (wholeSlice(begin, end, size)) {\n return this;\n }\n return setListBounds(\n this,\n resolveBegin(begin, size),\n resolveEnd(end, size)\n );\n };\n\n List.prototype.__iterator = function __iterator (type, reverse) {\n var index = reverse ? this.size : 0;\n var values = iterateList(this, reverse);\n return new Iterator(function () {\n var value = values();\n return value === DONE\n ? iteratorDone()\n : iteratorValue(type, reverse ? --index : index++, value);\n });\n };\n\n List.prototype.__iterate = function __iterate (fn, reverse) {\n var index = reverse ? this.size : 0;\n var values = iterateList(this, reverse);\n var value;\n while ((value = values()) !== DONE) {\n if (fn(value, reverse ? --index : index++, this) === false) {\n break;\n }\n }\n return index;\n };\n\n List.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyList();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeList(\n this._origin,\n this._capacity,\n this._level,\n this._root,\n this._tail,\n ownerID,\n this.__hash\n );\n };\n\n return List;\n}(IndexedCollection));\n\nList.isList = isList;\n\nvar ListPrototype = List.prototype;\nListPrototype[IS_LIST_SYMBOL] = true;\nListPrototype[DELETE] = ListPrototype.remove;\nListPrototype.merge = ListPrototype.concat;\nListPrototype.setIn = setIn;\nListPrototype.deleteIn = ListPrototype.removeIn = deleteIn;\nListPrototype.update = update;\nListPrototype.updateIn = updateIn;\nListPrototype.mergeIn = mergeIn;\nListPrototype.mergeDeepIn = mergeDeepIn;\nListPrototype.withMutations = withMutations;\nListPrototype.wasAltered = wasAltered;\nListPrototype.asImmutable = asImmutable;\nListPrototype['@@transducer/init'] = ListPrototype.asMutable = asMutable;\nListPrototype['@@transducer/step'] = function (result, arr) {\n return result.push(arr);\n};\nListPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\nvar VNode = function VNode(array, ownerID) {\n this.array = array;\n this.ownerID = ownerID;\n};\n\n// TODO: seems like these methods are very similar\n\nVNode.prototype.removeBefore = function removeBefore (ownerID, level, index) {\n if (index === level ? 1 << level : this.array.length === 0) {\n return this;\n }\n var originIndex = (index >>> level) & MASK;\n if (originIndex >= this.array.length) {\n return new VNode([], ownerID);\n }\n var removingFirst = originIndex === 0;\n var newChild;\n if (level > 0) {\n var oldChild = this.array[originIndex];\n newChild =\n oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index);\n if (newChild === oldChild && removingFirst) {\n return this;\n }\n }\n if (removingFirst && !newChild) {\n return this;\n }\n var editable = editableVNode(this, ownerID);\n if (!removingFirst) {\n for (var ii = 0; ii < originIndex; ii++) {\n editable.array[ii] = undefined;\n }\n }\n if (newChild) {\n editable.array[originIndex] = newChild;\n }\n return editable;\n};\n\nVNode.prototype.removeAfter = function removeAfter (ownerID, level, index) {\n if (index === (level ? 1 << level : 0) || this.array.length === 0) {\n return this;\n }\n var sizeIndex = ((index - 1) >>> level) & MASK;\n if (sizeIndex >= this.array.length) {\n return this;\n }\n\n var newChild;\n if (level > 0) {\n var oldChild = this.array[sizeIndex];\n newChild =\n oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index);\n if (newChild === oldChild && sizeIndex === this.array.length - 1) {\n return this;\n }\n }\n\n var editable = editableVNode(this, ownerID);\n editable.array.splice(sizeIndex + 1);\n if (newChild) {\n editable.array[sizeIndex] = newChild;\n }\n return editable;\n};\n\nvar DONE = {};\n\nfunction iterateList(list, reverse) {\n var left = list._origin;\n var right = list._capacity;\n var tailPos = getTailOffset(right);\n var tail = list._tail;\n\n return iterateNodeOrLeaf(list._root, list._level, 0);\n\n function iterateNodeOrLeaf(node, level, offset) {\n return level === 0\n ? iterateLeaf(node, offset)\n : iterateNode(node, level, offset);\n }\n\n function iterateLeaf(node, offset) {\n var array = offset === tailPos ? tail && tail.array : node && node.array;\n var from = offset > left ? 0 : left - offset;\n var to = right - offset;\n if (to > SIZE) {\n to = SIZE;\n }\n return function () {\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n return array && array[idx];\n };\n }\n\n function iterateNode(node, level, offset) {\n var values;\n var array = node && node.array;\n var from = offset > left ? 0 : (left - offset) >> level;\n var to = ((right - offset) >> level) + 1;\n if (to > SIZE) {\n to = SIZE;\n }\n return function () {\n while (true) {\n if (values) {\n var value = values();\n if (value !== DONE) {\n return value;\n }\n values = null;\n }\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n values = iterateNodeOrLeaf(\n array && array[idx],\n level - SHIFT,\n offset + (idx << level)\n );\n }\n };\n }\n}\n\nfunction makeList(origin, capacity, level, root, tail, ownerID, hash) {\n var list = Object.create(ListPrototype);\n list.size = capacity - origin;\n list._origin = origin;\n list._capacity = capacity;\n list._level = level;\n list._root = root;\n list._tail = tail;\n list.__ownerID = ownerID;\n list.__hash = hash;\n list.__altered = false;\n return list;\n}\n\nvar EMPTY_LIST;\nfunction emptyList() {\n return EMPTY_LIST || (EMPTY_LIST = makeList(0, 0, SHIFT));\n}\n\nfunction updateList(list, index, value) {\n index = wrapIndex(list, index);\n\n if (index !== index) {\n return list;\n }\n\n if (index >= list.size || index < 0) {\n return list.withMutations(function (list) {\n index < 0\n ? setListBounds(list, index).set(0, value)\n : setListBounds(list, 0, index + 1).set(index, value);\n });\n }\n\n index += list._origin;\n\n var newTail = list._tail;\n var newRoot = list._root;\n var didAlter = MakeRef();\n if (index >= getTailOffset(list._capacity)) {\n newTail = updateVNode(newTail, list.__ownerID, 0, index, value, didAlter);\n } else {\n newRoot = updateVNode(\n newRoot,\n list.__ownerID,\n list._level,\n index,\n value,\n didAlter\n );\n }\n\n if (!didAlter.value) {\n return list;\n }\n\n if (list.__ownerID) {\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(list._origin, list._capacity, list._level, newRoot, newTail);\n}\n\nfunction updateVNode(node, ownerID, level, index, value, didAlter) {\n var idx = (index >>> level) & MASK;\n var nodeHas = node && idx < node.array.length;\n if (!nodeHas && value === undefined) {\n return node;\n }\n\n var newNode;\n\n if (level > 0) {\n var lowerNode = node && node.array[idx];\n var newLowerNode = updateVNode(\n lowerNode,\n ownerID,\n level - SHIFT,\n index,\n value,\n didAlter\n );\n if (newLowerNode === lowerNode) {\n return node;\n }\n newNode = editableVNode(node, ownerID);\n newNode.array[idx] = newLowerNode;\n return newNode;\n }\n\n if (nodeHas && node.array[idx] === value) {\n return node;\n }\n\n if (didAlter) {\n SetRef(didAlter);\n }\n\n newNode = editableVNode(node, ownerID);\n if (value === undefined && idx === newNode.array.length - 1) {\n newNode.array.pop();\n } else {\n newNode.array[idx] = value;\n }\n return newNode;\n}\n\nfunction editableVNode(node, ownerID) {\n if (ownerID && node && ownerID === node.ownerID) {\n return node;\n }\n return new VNode(node ? node.array.slice() : [], ownerID);\n}\n\nfunction listNodeFor(list, rawIndex) {\n if (rawIndex >= getTailOffset(list._capacity)) {\n return list._tail;\n }\n if (rawIndex < 1 << (list._level + SHIFT)) {\n var node = list._root;\n var level = list._level;\n while (node && level > 0) {\n node = node.array[(rawIndex >>> level) & MASK];\n level -= SHIFT;\n }\n return node;\n }\n}\n\nfunction setListBounds(list, begin, end) {\n // Sanitize begin & end using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n if (begin !== undefined) {\n begin |= 0;\n }\n if (end !== undefined) {\n end |= 0;\n }\n var owner = list.__ownerID || new OwnerID();\n var oldOrigin = list._origin;\n var oldCapacity = list._capacity;\n var newOrigin = oldOrigin + begin;\n var newCapacity =\n end === undefined\n ? oldCapacity\n : end < 0\n ? oldCapacity + end\n : oldOrigin + end;\n if (newOrigin === oldOrigin && newCapacity === oldCapacity) {\n return list;\n }\n\n // If it's going to end after it starts, it's empty.\n if (newOrigin >= newCapacity) {\n return list.clear();\n }\n\n var newLevel = list._level;\n var newRoot = list._root;\n\n // New origin might need creating a higher root.\n var offsetShift = 0;\n while (newOrigin + offsetShift < 0) {\n newRoot = new VNode(\n newRoot && newRoot.array.length ? [undefined, newRoot] : [],\n owner\n );\n newLevel += SHIFT;\n offsetShift += 1 << newLevel;\n }\n if (offsetShift) {\n newOrigin += offsetShift;\n oldOrigin += offsetShift;\n newCapacity += offsetShift;\n oldCapacity += offsetShift;\n }\n\n var oldTailOffset = getTailOffset(oldCapacity);\n var newTailOffset = getTailOffset(newCapacity);\n\n // New size might need creating a higher root.\n while (newTailOffset >= 1 << (newLevel + SHIFT)) {\n newRoot = new VNode(\n newRoot && newRoot.array.length ? [newRoot] : [],\n owner\n );\n newLevel += SHIFT;\n }\n\n // Locate or create the new tail.\n var oldTail = list._tail;\n var newTail =\n newTailOffset < oldTailOffset\n ? listNodeFor(list, newCapacity - 1)\n : newTailOffset > oldTailOffset\n ? new VNode([], owner)\n : oldTail;\n\n // Merge Tail into tree.\n if (\n oldTail &&\n newTailOffset > oldTailOffset &&\n newOrigin < oldCapacity &&\n oldTail.array.length\n ) {\n newRoot = editableVNode(newRoot, owner);\n var node = newRoot;\n for (var level = newLevel; level > SHIFT; level -= SHIFT) {\n var idx = (oldTailOffset >>> level) & MASK;\n node = node.array[idx] = editableVNode(node.array[idx], owner);\n }\n node.array[(oldTailOffset >>> SHIFT) & MASK] = oldTail;\n }\n\n // If the size has been reduced, there's a chance the tail needs to be trimmed.\n if (newCapacity < oldCapacity) {\n newTail = newTail && newTail.removeAfter(owner, 0, newCapacity);\n }\n\n // If the new origin is within the tail, then we do not need a root.\n if (newOrigin >= newTailOffset) {\n newOrigin -= newTailOffset;\n newCapacity -= newTailOffset;\n newLevel = SHIFT;\n newRoot = null;\n newTail = newTail && newTail.removeBefore(owner, 0, newOrigin);\n\n // Otherwise, if the root has been trimmed, garbage collect.\n } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) {\n offsetShift = 0;\n\n // Identify the new top root node of the subtree of the old root.\n while (newRoot) {\n var beginIndex = (newOrigin >>> newLevel) & MASK;\n if ((beginIndex !== newTailOffset >>> newLevel) & MASK) {\n break;\n }\n if (beginIndex) {\n offsetShift += (1 << newLevel) * beginIndex;\n }\n newLevel -= SHIFT;\n newRoot = newRoot.array[beginIndex];\n }\n\n // Trim the new sides of the new root.\n if (newRoot && newOrigin > oldOrigin) {\n newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift);\n }\n if (newRoot && newTailOffset < oldTailOffset) {\n newRoot = newRoot.removeAfter(\n owner,\n newLevel,\n newTailOffset - offsetShift\n );\n }\n if (offsetShift) {\n newOrigin -= offsetShift;\n newCapacity -= offsetShift;\n }\n }\n\n if (list.__ownerID) {\n list.size = newCapacity - newOrigin;\n list._origin = newOrigin;\n list._capacity = newCapacity;\n list._level = newLevel;\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail);\n}\n\nfunction getTailOffset(size) {\n return size < SIZE ? 0 : ((size - 1) >>> SHIFT) << SHIFT;\n}\n\nvar OrderedMap = /*@__PURE__*/(function (Map) {\n function OrderedMap(value) {\n return value === undefined || value === null\n ? emptyOrderedMap()\n : isOrderedMap(value)\n ? value\n : emptyOrderedMap().withMutations(function (map) {\n var iter = KeyedCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v, k) { return map.set(k, v); });\n });\n }\n\n if ( Map ) OrderedMap.__proto__ = Map;\n OrderedMap.prototype = Object.create( Map && Map.prototype );\n OrderedMap.prototype.constructor = OrderedMap;\n\n OrderedMap.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n OrderedMap.prototype.toString = function toString () {\n return this.__toString('OrderedMap {', '}');\n };\n\n // @pragma Access\n\n OrderedMap.prototype.get = function get (k, notSetValue) {\n var index = this._map.get(k);\n return index !== undefined ? this._list.get(index)[1] : notSetValue;\n };\n\n // @pragma Modification\n\n OrderedMap.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._map.clear();\n this._list.clear();\n this.__altered = true;\n return this;\n }\n return emptyOrderedMap();\n };\n\n OrderedMap.prototype.set = function set (k, v) {\n return updateOrderedMap(this, k, v);\n };\n\n OrderedMap.prototype.remove = function remove (k) {\n return updateOrderedMap(this, k, NOT_SET);\n };\n\n OrderedMap.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._list.__iterate(\n function (entry) { return entry && fn(entry[1], entry[0], this$1$1); },\n reverse\n );\n };\n\n OrderedMap.prototype.__iterator = function __iterator (type, reverse) {\n return this._list.fromEntrySeq().__iterator(type, reverse);\n };\n\n OrderedMap.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n var newList = this._list.__ensureOwner(ownerID);\n if (!ownerID) {\n if (this.size === 0) {\n return emptyOrderedMap();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n this._map = newMap;\n this._list = newList;\n return this;\n }\n return makeOrderedMap(newMap, newList, ownerID, this.__hash);\n };\n\n return OrderedMap;\n}(Map));\n\nOrderedMap.isOrderedMap = isOrderedMap;\n\nOrderedMap.prototype[IS_ORDERED_SYMBOL] = true;\nOrderedMap.prototype[DELETE] = OrderedMap.prototype.remove;\n\nfunction makeOrderedMap(map, list, ownerID, hash) {\n var omap = Object.create(OrderedMap.prototype);\n omap.size = map ? map.size : 0;\n omap._map = map;\n omap._list = list;\n omap.__ownerID = ownerID;\n omap.__hash = hash;\n omap.__altered = false;\n return omap;\n}\n\nvar EMPTY_ORDERED_MAP;\nfunction emptyOrderedMap() {\n return (\n EMPTY_ORDERED_MAP ||\n (EMPTY_ORDERED_MAP = makeOrderedMap(emptyMap(), emptyList()))\n );\n}\n\nfunction updateOrderedMap(omap, k, v) {\n var map = omap._map;\n var list = omap._list;\n var i = map.get(k);\n var has = i !== undefined;\n var newMap;\n var newList;\n if (v === NOT_SET) {\n // removed\n if (!has) {\n return omap;\n }\n if (list.size >= SIZE && list.size >= map.size * 2) {\n newList = list.filter(function (entry, idx) { return entry !== undefined && i !== idx; });\n newMap = newList\n .toKeyedSeq()\n .map(function (entry) { return entry[0]; })\n .flip()\n .toMap();\n if (omap.__ownerID) {\n newMap.__ownerID = newList.__ownerID = omap.__ownerID;\n }\n } else {\n newMap = map.remove(k);\n newList = i === list.size - 1 ? list.pop() : list.set(i, undefined);\n }\n } else if (has) {\n if (v === list.get(i)[1]) {\n return omap;\n }\n newMap = map;\n newList = list.set(i, [k, v]);\n } else {\n newMap = map.set(k, list.size);\n newList = list.set(list.size, [k, v]);\n }\n if (omap.__ownerID) {\n omap.size = newMap.size;\n omap._map = newMap;\n omap._list = newList;\n omap.__hash = undefined;\n omap.__altered = true;\n return omap;\n }\n return makeOrderedMap(newMap, newList);\n}\n\nvar IS_STACK_SYMBOL = '@@__IMMUTABLE_STACK__@@';\n\nfunction isStack(maybeStack) {\n return Boolean(maybeStack && maybeStack[IS_STACK_SYMBOL]);\n}\n\nvar Stack = /*@__PURE__*/(function (IndexedCollection) {\n function Stack(value) {\n return value === undefined || value === null\n ? emptyStack()\n : isStack(value)\n ? value\n : emptyStack().pushAll(value);\n }\n\n if ( IndexedCollection ) Stack.__proto__ = IndexedCollection;\n Stack.prototype = Object.create( IndexedCollection && IndexedCollection.prototype );\n Stack.prototype.constructor = Stack;\n\n Stack.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n Stack.prototype.toString = function toString () {\n return this.__toString('Stack [', ']');\n };\n\n // @pragma Access\n\n Stack.prototype.get = function get (index, notSetValue) {\n var head = this._head;\n index = wrapIndex(this, index);\n while (head && index--) {\n head = head.next;\n }\n return head ? head.value : notSetValue;\n };\n\n Stack.prototype.peek = function peek () {\n return this._head && this._head.value;\n };\n\n // @pragma Modification\n\n Stack.prototype.push = function push (/*...values*/) {\n var arguments$1 = arguments;\n\n if (arguments.length === 0) {\n return this;\n }\n var newSize = this.size + arguments.length;\n var head = this._head;\n for (var ii = arguments.length - 1; ii >= 0; ii--) {\n head = {\n value: arguments$1[ii],\n next: head,\n };\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pushAll = function pushAll (iter) {\n iter = IndexedCollection(iter);\n if (iter.size === 0) {\n return this;\n }\n if (this.size === 0 && isStack(iter)) {\n return iter;\n }\n assertNotInfinite(iter.size);\n var newSize = this.size;\n var head = this._head;\n iter.__iterate(function (value) {\n newSize++;\n head = {\n value: value,\n next: head,\n };\n }, /* reverse */ true);\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pop = function pop () {\n return this.slice(1);\n };\n\n Stack.prototype.clear = function clear () {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._head = undefined;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyStack();\n };\n\n Stack.prototype.slice = function slice (begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n var resolvedBegin = resolveBegin(begin, this.size);\n var resolvedEnd = resolveEnd(end, this.size);\n if (resolvedEnd !== this.size) {\n // super.slice(begin, end);\n return IndexedCollection.prototype.slice.call(this, begin, end);\n }\n var newSize = this.size - resolvedBegin;\n var head = this._head;\n while (resolvedBegin--) {\n head = head.next;\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n // @pragma Mutability\n\n Stack.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n if (this.size === 0) {\n return emptyStack();\n }\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeStack(this.size, this._head, ownerID, this.__hash);\n };\n\n // @pragma Iteration\n\n Stack.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n if (reverse) {\n return new ArraySeq(this.toArray()).__iterate(\n function (v, k) { return fn(v, k, this$1$1); },\n reverse\n );\n }\n var iterations = 0;\n var node = this._head;\n while (node) {\n if (fn(node.value, iterations++, this) === false) {\n break;\n }\n node = node.next;\n }\n return iterations;\n };\n\n Stack.prototype.__iterator = function __iterator (type, reverse) {\n if (reverse) {\n return new ArraySeq(this.toArray()).__iterator(type, reverse);\n }\n var iterations = 0;\n var node = this._head;\n return new Iterator(function () {\n if (node) {\n var value = node.value;\n node = node.next;\n return iteratorValue(type, iterations++, value);\n }\n return iteratorDone();\n });\n };\n\n return Stack;\n}(IndexedCollection));\n\nStack.isStack = isStack;\n\nvar StackPrototype = Stack.prototype;\nStackPrototype[IS_STACK_SYMBOL] = true;\nStackPrototype.shift = StackPrototype.pop;\nStackPrototype.unshift = StackPrototype.push;\nStackPrototype.unshiftAll = StackPrototype.pushAll;\nStackPrototype.withMutations = withMutations;\nStackPrototype.wasAltered = wasAltered;\nStackPrototype.asImmutable = asImmutable;\nStackPrototype['@@transducer/init'] = StackPrototype.asMutable = asMutable;\nStackPrototype['@@transducer/step'] = function (result, arr) {\n return result.unshift(arr);\n};\nStackPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\nfunction makeStack(size, head, ownerID, hash) {\n var map = Object.create(StackPrototype);\n map.size = size;\n map._head = head;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n}\n\nvar EMPTY_STACK;\nfunction emptyStack() {\n return EMPTY_STACK || (EMPTY_STACK = makeStack(0));\n}\n\nvar IS_SET_SYMBOL = '@@__IMMUTABLE_SET__@@';\n\nfunction isSet(maybeSet) {\n return Boolean(maybeSet && maybeSet[IS_SET_SYMBOL]);\n}\n\nfunction isOrderedSet(maybeOrderedSet) {\n return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet);\n}\n\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (\n !isCollection(b) ||\n (a.size !== undefined && b.size !== undefined && a.size !== b.size) ||\n (a.__hash !== undefined &&\n b.__hash !== undefined &&\n a.__hash !== b.__hash) ||\n isKeyed(a) !== isKeyed(b) ||\n isIndexed(a) !== isIndexed(b) ||\n isOrdered(a) !== isOrdered(b)\n ) {\n return false;\n }\n\n if (a.size === 0 && b.size === 0) {\n return true;\n }\n\n var notAssociative = !isAssociative(a);\n\n if (isOrdered(a)) {\n var entries = a.entries();\n return (\n b.every(function (v, k) {\n var entry = entries.next().value;\n return entry && is(entry[1], v) && (notAssociative || is(entry[0], k));\n }) && entries.next().done\n );\n }\n\n var flipped = false;\n\n if (a.size === undefined) {\n if (b.size === undefined) {\n if (typeof a.cacheResult === 'function') {\n a.cacheResult();\n }\n } else {\n flipped = true;\n var _ = a;\n a = b;\n b = _;\n }\n }\n\n var allEqual = true;\n var bSize = b.__iterate(function (v, k) {\n if (\n notAssociative\n ? !a.has(v)\n : flipped\n ? !is(v, a.get(k, NOT_SET))\n : !is(a.get(k, NOT_SET), v)\n ) {\n allEqual = false;\n return false;\n }\n });\n\n return allEqual && a.size === bSize;\n}\n\nfunction mixin(ctor, methods) {\n var keyCopier = function (key) {\n ctor.prototype[key] = methods[key];\n };\n Object.keys(methods).forEach(keyCopier);\n Object.getOwnPropertySymbols &&\n Object.getOwnPropertySymbols(methods).forEach(keyCopier);\n return ctor;\n}\n\nfunction toJS(value) {\n if (!value || typeof value !== 'object') {\n return value;\n }\n if (!isCollection(value)) {\n if (!isDataStructure(value)) {\n return value;\n }\n value = Seq(value);\n }\n if (isKeyed(value)) {\n var result$1 = {};\n value.__iterate(function (v, k) {\n result$1[k] = toJS(v);\n });\n return result$1;\n }\n var result = [];\n value.__iterate(function (v) {\n result.push(toJS(v));\n });\n return result;\n}\n\nvar Set = /*@__PURE__*/(function (SetCollection) {\n function Set(value) {\n return value === undefined || value === null\n ? emptySet()\n : isSet(value) && !isOrdered(value)\n ? value\n : emptySet().withMutations(function (set) {\n var iter = SetCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v) { return set.add(v); });\n });\n }\n\n if ( SetCollection ) Set.__proto__ = SetCollection;\n Set.prototype = Object.create( SetCollection && SetCollection.prototype );\n Set.prototype.constructor = Set;\n\n Set.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n Set.fromKeys = function fromKeys (value) {\n return this(KeyedCollection(value).keySeq());\n };\n\n Set.intersect = function intersect (sets) {\n sets = Collection(sets).toArray();\n return sets.length\n ? SetPrototype.intersect.apply(Set(sets.pop()), sets)\n : emptySet();\n };\n\n Set.union = function union (sets) {\n sets = Collection(sets).toArray();\n return sets.length\n ? SetPrototype.union.apply(Set(sets.pop()), sets)\n : emptySet();\n };\n\n Set.prototype.toString = function toString () {\n return this.__toString('Set {', '}');\n };\n\n // @pragma Access\n\n Set.prototype.has = function has (value) {\n return this._map.has(value);\n };\n\n // @pragma Modification\n\n Set.prototype.add = function add (value) {\n return updateSet(this, this._map.set(value, value));\n };\n\n Set.prototype.remove = function remove (value) {\n return updateSet(this, this._map.remove(value));\n };\n\n Set.prototype.clear = function clear () {\n return updateSet(this, this._map.clear());\n };\n\n // @pragma Composition\n\n Set.prototype.map = function map (mapper, context) {\n var this$1$1 = this;\n\n // keep track if the set is altered by the map function\n var didChanges = false;\n\n var newMap = updateSet(\n this,\n this._map.mapEntries(function (ref) {\n var v = ref[1];\n\n var mapped = mapper.call(context, v, v, this$1$1);\n\n if (mapped !== v) {\n didChanges = true;\n }\n\n return [mapped, mapped];\n }, context)\n );\n\n return didChanges ? newMap : this;\n };\n\n Set.prototype.union = function union () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n iters = iters.filter(function (x) { return x.size !== 0; });\n if (iters.length === 0) {\n return this;\n }\n if (this.size === 0 && !this.__ownerID && iters.length === 1) {\n return this.constructor(iters[0]);\n }\n return this.withMutations(function (set) {\n for (var ii = 0; ii < iters.length; ii++) {\n if (typeof iters[ii] === 'string') {\n set.add(iters[ii]);\n } else {\n SetCollection(iters[ii]).forEach(function (value) { return set.add(value); });\n }\n }\n });\n };\n\n Set.prototype.intersect = function intersect () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function (iter) { return SetCollection(iter); });\n var toRemove = [];\n this.forEach(function (value) {\n if (!iters.every(function (iter) { return iter.includes(value); })) {\n toRemove.push(value);\n }\n });\n return this.withMutations(function (set) {\n toRemove.forEach(function (value) {\n set.remove(value);\n });\n });\n };\n\n Set.prototype.subtract = function subtract () {\n var iters = [], len = arguments.length;\n while ( len-- ) iters[ len ] = arguments[ len ];\n\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function (iter) { return SetCollection(iter); });\n var toRemove = [];\n this.forEach(function (value) {\n if (iters.some(function (iter) { return iter.includes(value); })) {\n toRemove.push(value);\n }\n });\n return this.withMutations(function (set) {\n toRemove.forEach(function (value) {\n set.remove(value);\n });\n });\n };\n\n Set.prototype.sort = function sort (comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator));\n };\n\n Set.prototype.sortBy = function sortBy (mapper, comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator, mapper));\n };\n\n Set.prototype.wasAltered = function wasAltered () {\n return this._map.wasAltered();\n };\n\n Set.prototype.__iterate = function __iterate (fn, reverse) {\n var this$1$1 = this;\n\n return this._map.__iterate(function (k) { return fn(k, k, this$1$1); }, reverse);\n };\n\n Set.prototype.__iterator = function __iterator (type, reverse) {\n return this._map.__iterator(type, reverse);\n };\n\n Set.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n if (!ownerID) {\n if (this.size === 0) {\n return this.__empty();\n }\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n return this.__make(newMap, ownerID);\n };\n\n return Set;\n}(SetCollection));\n\nSet.isSet = isSet;\n\nvar SetPrototype = Set.prototype;\nSetPrototype[IS_SET_SYMBOL] = true;\nSetPrototype[DELETE] = SetPrototype.remove;\nSetPrototype.merge = SetPrototype.concat = SetPrototype.union;\nSetPrototype.withMutations = withMutations;\nSetPrototype.asImmutable = asImmutable;\nSetPrototype['@@transducer/init'] = SetPrototype.asMutable = asMutable;\nSetPrototype['@@transducer/step'] = function (result, arr) {\n return result.add(arr);\n};\nSetPrototype['@@transducer/result'] = function (obj) {\n return obj.asImmutable();\n};\n\nSetPrototype.__empty = emptySet;\nSetPrototype.__make = makeSet;\n\nfunction updateSet(set, newMap) {\n if (set.__ownerID) {\n set.size = newMap.size;\n set._map = newMap;\n return set;\n }\n return newMap === set._map\n ? set\n : newMap.size === 0\n ? set.__empty()\n : set.__make(newMap);\n}\n\nfunction makeSet(map, ownerID) {\n var set = Object.create(SetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n}\n\nvar EMPTY_SET;\nfunction emptySet() {\n return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap()));\n}\n\n/**\n * Returns a lazy seq of nums from start (inclusive) to end\n * (exclusive), by step, where start defaults to 0, step to 1, and end to\n * infinity. When start is equal to end, returns empty list.\n */\nvar Range = /*@__PURE__*/(function (IndexedSeq) {\n function Range(start, end, step) {\n if (!(this instanceof Range)) {\n return new Range(start, end, step);\n }\n invariant(step !== 0, 'Cannot step a Range by 0');\n start = start || 0;\n if (end === undefined) {\n end = Infinity;\n }\n step = step === undefined ? 1 : Math.abs(step);\n if (end < start) {\n step = -step;\n }\n this._start = start;\n this._end = end;\n this._step = step;\n this.size = Math.max(0, Math.ceil((end - start) / step - 1) + 1);\n if (this.size === 0) {\n if (EMPTY_RANGE) {\n return EMPTY_RANGE;\n }\n EMPTY_RANGE = this;\n }\n }\n\n if ( IndexedSeq ) Range.__proto__ = IndexedSeq;\n Range.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n Range.prototype.constructor = Range;\n\n Range.prototype.toString = function toString () {\n if (this.size === 0) {\n return 'Range []';\n }\n return (\n 'Range [ ' +\n this._start +\n '...' +\n this._end +\n (this._step !== 1 ? ' by ' + this._step : '') +\n ' ]'\n );\n };\n\n Range.prototype.get = function get (index, notSetValue) {\n return this.has(index)\n ? this._start + wrapIndex(this, index) * this._step\n : notSetValue;\n };\n\n Range.prototype.includes = function includes (searchValue) {\n var possibleIndex = (searchValue - this._start) / this._step;\n return (\n possibleIndex >= 0 &&\n possibleIndex < this.size &&\n possibleIndex === Math.floor(possibleIndex)\n );\n };\n\n Range.prototype.slice = function slice (begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n begin = resolveBegin(begin, this.size);\n end = resolveEnd(end, this.size);\n if (end <= begin) {\n return new Range(0, 0);\n }\n return new Range(\n this.get(begin, this._end),\n this.get(end, this._end),\n this._step\n );\n };\n\n Range.prototype.indexOf = function indexOf (searchValue) {\n var offsetValue = searchValue - this._start;\n if (offsetValue % this._step === 0) {\n var index = offsetValue / this._step;\n if (index >= 0 && index < this.size) {\n return index;\n }\n }\n return -1;\n };\n\n Range.prototype.lastIndexOf = function lastIndexOf (searchValue) {\n return this.indexOf(searchValue);\n };\n\n Range.prototype.__iterate = function __iterate (fn, reverse) {\n var size = this.size;\n var step = this._step;\n var value = reverse ? this._start + (size - 1) * step : this._start;\n var i = 0;\n while (i !== size) {\n if (fn(value, reverse ? size - ++i : i++, this) === false) {\n break;\n }\n value += reverse ? -step : step;\n }\n return i;\n };\n\n Range.prototype.__iterator = function __iterator (type, reverse) {\n var size = this.size;\n var step = this._step;\n var value = reverse ? this._start + (size - 1) * step : this._start;\n var i = 0;\n return new Iterator(function () {\n if (i === size) {\n return iteratorDone();\n }\n var v = value;\n value += reverse ? -step : step;\n return iteratorValue(type, reverse ? size - ++i : i++, v);\n });\n };\n\n Range.prototype.equals = function equals (other) {\n return other instanceof Range\n ? this._start === other._start &&\n this._end === other._end &&\n this._step === other._step\n : deepEqual(this, other);\n };\n\n return Range;\n}(IndexedSeq));\n\nvar EMPTY_RANGE;\n\nfunction getIn$1(collection, searchKeyPath, notSetValue) {\n var keyPath = coerceKeyPath(searchKeyPath);\n var i = 0;\n while (i !== keyPath.length) {\n collection = get(collection, keyPath[i++], NOT_SET);\n if (collection === NOT_SET) {\n return notSetValue;\n }\n }\n return collection;\n}\n\nfunction getIn(searchKeyPath, notSetValue) {\n return getIn$1(this, searchKeyPath, notSetValue);\n}\n\nfunction hasIn$1(collection, keyPath) {\n return getIn$1(collection, keyPath, NOT_SET) !== NOT_SET;\n}\n\nfunction hasIn(searchKeyPath) {\n return hasIn$1(this, searchKeyPath);\n}\n\nfunction toObject() {\n assertNotInfinite(this.size);\n var object = {};\n this.__iterate(function (v, k) {\n object[k] = v;\n });\n return object;\n}\n\n// Note: all of these methods are deprecated.\nCollection.isIterable = isCollection;\nCollection.isKeyed = isKeyed;\nCollection.isIndexed = isIndexed;\nCollection.isAssociative = isAssociative;\nCollection.isOrdered = isOrdered;\n\nCollection.Iterator = Iterator;\n\nmixin(Collection, {\n // ### Conversion to other types\n\n toArray: function toArray() {\n assertNotInfinite(this.size);\n var array = new Array(this.size || 0);\n var useTuples = isKeyed(this);\n var i = 0;\n this.__iterate(function (v, k) {\n // Keyed collections produce an array of tuples.\n array[i++] = useTuples ? [k, v] : v;\n });\n return array;\n },\n\n toIndexedSeq: function toIndexedSeq() {\n return new ToIndexedSequence(this);\n },\n\n toJS: function toJS$1() {\n return toJS(this);\n },\n\n toKeyedSeq: function toKeyedSeq() {\n return new ToKeyedSequence(this, true);\n },\n\n toMap: function toMap() {\n // Use Late Binding here to solve the circular dependency.\n return Map(this.toKeyedSeq());\n },\n\n toObject: toObject,\n\n toOrderedMap: function toOrderedMap() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedMap(this.toKeyedSeq());\n },\n\n toOrderedSet: function toOrderedSet() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedSet(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSet: function toSet() {\n // Use Late Binding here to solve the circular dependency.\n return Set(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSetSeq: function toSetSeq() {\n return new ToSetSequence(this);\n },\n\n toSeq: function toSeq() {\n return isIndexed(this)\n ? this.toIndexedSeq()\n : isKeyed(this)\n ? this.toKeyedSeq()\n : this.toSetSeq();\n },\n\n toStack: function toStack() {\n // Use Late Binding here to solve the circular dependency.\n return Stack(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toList: function toList() {\n // Use Late Binding here to solve the circular dependency.\n return List(isKeyed(this) ? this.valueSeq() : this);\n },\n\n // ### Common JavaScript methods and properties\n\n toString: function toString() {\n return '[Collection]';\n },\n\n __toString: function __toString(head, tail) {\n if (this.size === 0) {\n return head + tail;\n }\n return (\n head +\n ' ' +\n this.toSeq().map(this.__toStringMapper).join(', ') +\n ' ' +\n tail\n );\n },\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n concat: function concat() {\n var values = [], len = arguments.length;\n while ( len-- ) values[ len ] = arguments[ len ];\n\n return reify(this, concatFactory(this, values));\n },\n\n includes: function includes(searchValue) {\n return this.some(function (value) { return is(value, searchValue); });\n },\n\n entries: function entries() {\n return this.__iterator(ITERATE_ENTRIES);\n },\n\n every: function every(predicate, context) {\n assertNotInfinite(this.size);\n var returnValue = true;\n this.__iterate(function (v, k, c) {\n if (!predicate.call(context, v, k, c)) {\n returnValue = false;\n return false;\n }\n });\n return returnValue;\n },\n\n filter: function filter(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, true));\n },\n\n partition: function partition(predicate, context) {\n return partitionFactory(this, predicate, context);\n },\n\n find: function find(predicate, context, notSetValue) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[1] : notSetValue;\n },\n\n forEach: function forEach(sideEffect, context) {\n assertNotInfinite(this.size);\n return this.__iterate(context ? sideEffect.bind(context) : sideEffect);\n },\n\n join: function join(separator) {\n assertNotInfinite(this.size);\n separator = separator !== undefined ? '' + separator : ',';\n var joined = '';\n var isFirst = true;\n this.__iterate(function (v) {\n isFirst ? (isFirst = false) : (joined += separator);\n joined += v !== null && v !== undefined ? v.toString() : '';\n });\n return joined;\n },\n\n keys: function keys() {\n return this.__iterator(ITERATE_KEYS);\n },\n\n map: function map(mapper, context) {\n return reify(this, mapFactory(this, mapper, context));\n },\n\n reduce: function reduce$1(reducer, initialReduction, context) {\n return reduce(\n this,\n reducer,\n initialReduction,\n context,\n arguments.length < 2,\n false\n );\n },\n\n reduceRight: function reduceRight(reducer, initialReduction, context) {\n return reduce(\n this,\n reducer,\n initialReduction,\n context,\n arguments.length < 2,\n true\n );\n },\n\n reverse: function reverse() {\n return reify(this, reverseFactory(this, true));\n },\n\n slice: function slice(begin, end) {\n return reify(this, sliceFactory(this, begin, end, true));\n },\n\n some: function some(predicate, context) {\n assertNotInfinite(this.size);\n var returnValue = false;\n this.__iterate(function (v, k, c) {\n if (predicate.call(context, v, k, c)) {\n returnValue = true;\n return false;\n }\n });\n return returnValue;\n },\n\n sort: function sort(comparator) {\n return reify(this, sortFactory(this, comparator));\n },\n\n values: function values() {\n return this.__iterator(ITERATE_VALUES);\n },\n\n // ### More sequential methods\n\n butLast: function butLast() {\n return this.slice(0, -1);\n },\n\n isEmpty: function isEmpty() {\n return this.size !== undefined ? this.size === 0 : !this.some(function () { return true; });\n },\n\n count: function count(predicate, context) {\n return ensureSize(\n predicate ? this.toSeq().filter(predicate, context) : this\n );\n },\n\n countBy: function countBy(grouper, context) {\n return countByFactory(this, grouper, context);\n },\n\n equals: function equals(other) {\n return deepEqual(this, other);\n },\n\n entrySeq: function entrySeq() {\n var collection = this;\n if (collection._cache) {\n // We cache as an entries array, so we can just return the cache!\n return new ArraySeq(collection._cache);\n }\n var entriesSequence = collection.toSeq().map(entryMapper).toIndexedSeq();\n entriesSequence.fromEntrySeq = function () { return collection.toSeq(); };\n return entriesSequence;\n },\n\n filterNot: function filterNot(predicate, context) {\n return this.filter(not(predicate), context);\n },\n\n findEntry: function findEntry(predicate, context, notSetValue) {\n var found = notSetValue;\n this.__iterate(function (v, k, c) {\n if (predicate.call(context, v, k, c)) {\n found = [k, v];\n return false;\n }\n });\n return found;\n },\n\n findKey: function findKey(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry && entry[0];\n },\n\n findLast: function findLast(predicate, context, notSetValue) {\n return this.toKeyedSeq().reverse().find(predicate, context, notSetValue);\n },\n\n findLastEntry: function findLastEntry(predicate, context, notSetValue) {\n return this.toKeyedSeq()\n .reverse()\n .findEntry(predicate, context, notSetValue);\n },\n\n findLastKey: function findLastKey(predicate, context) {\n return this.toKeyedSeq().reverse().findKey(predicate, context);\n },\n\n first: function first(notSetValue) {\n return this.find(returnTrue, null, notSetValue);\n },\n\n flatMap: function flatMap(mapper, context) {\n return reify(this, flatMapFactory(this, mapper, context));\n },\n\n flatten: function flatten(depth) {\n return reify(this, flattenFactory(this, depth, true));\n },\n\n fromEntrySeq: function fromEntrySeq() {\n return new FromEntriesSequence(this);\n },\n\n get: function get(searchKey, notSetValue) {\n return this.find(function (_, key) { return is(key, searchKey); }, undefined, notSetValue);\n },\n\n getIn: getIn,\n\n groupBy: function groupBy(grouper, context) {\n return groupByFactory(this, grouper, context);\n },\n\n has: function has(searchKey) {\n return this.get(searchKey, NOT_SET) !== NOT_SET;\n },\n\n hasIn: hasIn,\n\n isSubset: function isSubset(iter) {\n iter = typeof iter.includes === 'function' ? iter : Collection(iter);\n return this.every(function (value) { return iter.includes(value); });\n },\n\n isSuperset: function isSuperset(iter) {\n iter = typeof iter.isSubset === 'function' ? iter : Collection(iter);\n return iter.isSubset(this);\n },\n\n keyOf: function keyOf(searchValue) {\n return this.findKey(function (value) { return is(value, searchValue); });\n },\n\n keySeq: function keySeq() {\n return this.toSeq().map(keyMapper).toIndexedSeq();\n },\n\n last: function last(notSetValue) {\n return this.toSeq().reverse().first(notSetValue);\n },\n\n lastKeyOf: function lastKeyOf(searchValue) {\n return this.toKeyedSeq().reverse().keyOf(searchValue);\n },\n\n max: function max(comparator) {\n return maxFactory(this, comparator);\n },\n\n maxBy: function maxBy(mapper, comparator) {\n return maxFactory(this, comparator, mapper);\n },\n\n min: function min(comparator) {\n return maxFactory(\n this,\n comparator ? neg(comparator) : defaultNegComparator\n );\n },\n\n minBy: function minBy(mapper, comparator) {\n return maxFactory(\n this,\n comparator ? neg(comparator) : defaultNegComparator,\n mapper\n );\n },\n\n rest: function rest() {\n return this.slice(1);\n },\n\n skip: function skip(amount) {\n return amount === 0 ? this : this.slice(Math.max(0, amount));\n },\n\n skipLast: function skipLast(amount) {\n return amount === 0 ? this : this.slice(0, -Math.max(0, amount));\n },\n\n skipWhile: function skipWhile(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, true));\n },\n\n skipUntil: function skipUntil(predicate, context) {\n return this.skipWhile(not(predicate), context);\n },\n\n sortBy: function sortBy(mapper, comparator) {\n return reify(this, sortFactory(this, comparator, mapper));\n },\n\n take: function take(amount) {\n return this.slice(0, Math.max(0, amount));\n },\n\n takeLast: function takeLast(amount) {\n return this.slice(-Math.max(0, amount));\n },\n\n takeWhile: function takeWhile(predicate, context) {\n return reify(this, takeWhileFactory(this, predicate, context));\n },\n\n takeUntil: function takeUntil(predicate, context) {\n return this.takeWhile(not(predicate), context);\n },\n\n update: function update(fn) {\n return fn(this);\n },\n\n valueSeq: function valueSeq() {\n return this.toIndexedSeq();\n },\n\n // ### Hashable Object\n\n hashCode: function hashCode() {\n return this.__hash || (this.__hash = hashCollection(this));\n },\n\n // ### Internal\n\n // abstract __iterate(fn, reverse)\n\n // abstract __iterator(type, reverse)\n});\n\nvar CollectionPrototype = Collection.prototype;\nCollectionPrototype[IS_COLLECTION_SYMBOL] = true;\nCollectionPrototype[ITERATOR_SYMBOL] = CollectionPrototype.values;\nCollectionPrototype.toJSON = CollectionPrototype.toArray;\nCollectionPrototype.__toStringMapper = quoteString;\nCollectionPrototype.inspect = CollectionPrototype.toSource = function () {\n return this.toString();\n};\nCollectionPrototype.chain = CollectionPrototype.flatMap;\nCollectionPrototype.contains = CollectionPrototype.includes;\n\nmixin(KeyedCollection, {\n // ### More sequential methods\n\n flip: function flip() {\n return reify(this, flipFactory(this));\n },\n\n mapEntries: function mapEntries(mapper, context) {\n var this$1$1 = this;\n\n var iterations = 0;\n return reify(\n this,\n this.toSeq()\n .map(function (v, k) { return mapper.call(context, [k, v], iterations++, this$1$1); })\n .fromEntrySeq()\n );\n },\n\n mapKeys: function mapKeys(mapper, context) {\n var this$1$1 = this;\n\n return reify(\n this,\n this.toSeq()\n .flip()\n .map(function (k, v) { return mapper.call(context, k, v, this$1$1); })\n .flip()\n );\n },\n});\n\nvar KeyedCollectionPrototype = KeyedCollection.prototype;\nKeyedCollectionPrototype[IS_KEYED_SYMBOL] = true;\nKeyedCollectionPrototype[ITERATOR_SYMBOL] = CollectionPrototype.entries;\nKeyedCollectionPrototype.toJSON = toObject;\nKeyedCollectionPrototype.__toStringMapper = function (v, k) { return quoteString(k) + ': ' + quoteString(v); };\n\nmixin(IndexedCollection, {\n // ### Conversion to other types\n\n toKeyedSeq: function toKeyedSeq() {\n return new ToKeyedSequence(this, false);\n },\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n filter: function filter(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, false));\n },\n\n findIndex: function findIndex(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n indexOf: function indexOf(searchValue) {\n var key = this.keyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n lastIndexOf: function lastIndexOf(searchValue) {\n var key = this.lastKeyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n reverse: function reverse() {\n return reify(this, reverseFactory(this, false));\n },\n\n slice: function slice(begin, end) {\n return reify(this, sliceFactory(this, begin, end, false));\n },\n\n splice: function splice(index, removeNum /*, ...values*/) {\n var numArgs = arguments.length;\n removeNum = Math.max(removeNum || 0, 0);\n if (numArgs === 0 || (numArgs === 2 && !removeNum)) {\n return this;\n }\n // If index is negative, it should resolve relative to the size of the\n // collection. However size may be expensive to compute if not cached, so\n // only call count() if the number is in fact negative.\n index = resolveBegin(index, index < 0 ? this.count() : this.size);\n var spliced = this.slice(0, index);\n return reify(\n this,\n numArgs === 1\n ? spliced\n : spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum))\n );\n },\n\n // ### More collection methods\n\n findLastIndex: function findLastIndex(predicate, context) {\n var entry = this.findLastEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n first: function first(notSetValue) {\n return this.get(0, notSetValue);\n },\n\n flatten: function flatten(depth) {\n return reify(this, flattenFactory(this, depth, false));\n },\n\n get: function get(index, notSetValue) {\n index = wrapIndex(this, index);\n return index < 0 ||\n this.size === Infinity ||\n (this.size !== undefined && index > this.size)\n ? notSetValue\n : this.find(function (_, key) { return key === index; }, undefined, notSetValue);\n },\n\n has: function has(index) {\n index = wrapIndex(this, index);\n return (\n index >= 0 &&\n (this.size !== undefined\n ? this.size === Infinity || index < this.size\n : this.indexOf(index) !== -1)\n );\n },\n\n interpose: function interpose(separator) {\n return reify(this, interposeFactory(this, separator));\n },\n\n interleave: function interleave(/*...collections*/) {\n var collections = [this].concat(arrCopy(arguments));\n var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, collections);\n var interleaved = zipped.flatten(true);\n if (zipped.size) {\n interleaved.size = zipped.size * collections.length;\n }\n return reify(this, interleaved);\n },\n\n keySeq: function keySeq() {\n return Range(0, this.size);\n },\n\n last: function last(notSetValue) {\n return this.get(-1, notSetValue);\n },\n\n skipWhile: function skipWhile(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, false));\n },\n\n zip: function zip(/*, ...collections */) {\n var collections = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, collections));\n },\n\n zipAll: function zipAll(/*, ...collections */) {\n var collections = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, collections, true));\n },\n\n zipWith: function zipWith(zipper /*, ...collections */) {\n var collections = arrCopy(arguments);\n collections[0] = this;\n return reify(this, zipWithFactory(this, zipper, collections));\n },\n});\n\nvar IndexedCollectionPrototype = IndexedCollection.prototype;\nIndexedCollectionPrototype[IS_INDEXED_SYMBOL] = true;\nIndexedCollectionPrototype[IS_ORDERED_SYMBOL] = true;\n\nmixin(SetCollection, {\n // ### ES6 Collection methods (ES6 Array and Map)\n\n get: function get(value, notSetValue) {\n return this.has(value) ? value : notSetValue;\n },\n\n includes: function includes(value) {\n return this.has(value);\n },\n\n // ### More sequential methods\n\n keySeq: function keySeq() {\n return this.valueSeq();\n },\n});\n\nvar SetCollectionPrototype = SetCollection.prototype;\nSetCollectionPrototype.has = CollectionPrototype.includes;\nSetCollectionPrototype.contains = SetCollectionPrototype.includes;\nSetCollectionPrototype.keys = SetCollectionPrototype.values;\n\n// Mixin subclasses\n\nmixin(KeyedSeq, KeyedCollectionPrototype);\nmixin(IndexedSeq, IndexedCollectionPrototype);\nmixin(SetSeq, SetCollectionPrototype);\n\n// #pragma Helper functions\n\nfunction reduce(collection, reducer, reduction, context, useFirst, reverse) {\n assertNotInfinite(collection.size);\n collection.__iterate(function (v, k, c) {\n if (useFirst) {\n useFirst = false;\n reduction = v;\n } else {\n reduction = reducer.call(context, reduction, v, k, c);\n }\n }, reverse);\n return reduction;\n}\n\nfunction keyMapper(v, k) {\n return k;\n}\n\nfunction entryMapper(v, k) {\n return [k, v];\n}\n\nfunction not(predicate) {\n return function () {\n return !predicate.apply(this, arguments);\n };\n}\n\nfunction neg(predicate) {\n return function () {\n return -predicate.apply(this, arguments);\n };\n}\n\nfunction defaultZipper() {\n return arrCopy(arguments);\n}\n\nfunction defaultNegComparator(a, b) {\n return a < b ? 1 : a > b ? -1 : 0;\n}\n\nfunction hashCollection(collection) {\n if (collection.size === Infinity) {\n return 0;\n }\n var ordered = isOrdered(collection);\n var keyed = isKeyed(collection);\n var h = ordered ? 1 : 0;\n var size = collection.__iterate(\n keyed\n ? ordered\n ? function (v, k) {\n h = (31 * h + hashMerge(hash(v), hash(k))) | 0;\n }\n : function (v, k) {\n h = (h + hashMerge(hash(v), hash(k))) | 0;\n }\n : ordered\n ? function (v) {\n h = (31 * h + hash(v)) | 0;\n }\n : function (v) {\n h = (h + hash(v)) | 0;\n }\n );\n return murmurHashOfSize(size, h);\n}\n\nfunction murmurHashOfSize(size, h) {\n h = imul(h, 0xcc9e2d51);\n h = imul((h << 15) | (h >>> -15), 0x1b873593);\n h = imul((h << 13) | (h >>> -13), 5);\n h = ((h + 0xe6546b64) | 0) ^ size;\n h = imul(h ^ (h >>> 16), 0x85ebca6b);\n h = imul(h ^ (h >>> 13), 0xc2b2ae35);\n h = smi(h ^ (h >>> 16));\n return h;\n}\n\nfunction hashMerge(a, b) {\n return (a ^ (b + 0x9e3779b9 + (a << 6) + (a >> 2))) | 0; // int\n}\n\nvar OrderedSet = /*@__PURE__*/(function (Set) {\n function OrderedSet(value) {\n return value === undefined || value === null\n ? emptyOrderedSet()\n : isOrderedSet(value)\n ? value\n : emptyOrderedSet().withMutations(function (set) {\n var iter = SetCollection(value);\n assertNotInfinite(iter.size);\n iter.forEach(function (v) { return set.add(v); });\n });\n }\n\n if ( Set ) OrderedSet.__proto__ = Set;\n OrderedSet.prototype = Object.create( Set && Set.prototype );\n OrderedSet.prototype.constructor = OrderedSet;\n\n OrderedSet.of = function of (/*...values*/) {\n return this(arguments);\n };\n\n OrderedSet.fromKeys = function fromKeys (value) {\n return this(KeyedCollection(value).keySeq());\n };\n\n OrderedSet.prototype.toString = function toString () {\n return this.__toString('OrderedSet {', '}');\n };\n\n return OrderedSet;\n}(Set));\n\nOrderedSet.isOrderedSet = isOrderedSet;\n\nvar OrderedSetPrototype = OrderedSet.prototype;\nOrderedSetPrototype[IS_ORDERED_SYMBOL] = true;\nOrderedSetPrototype.zip = IndexedCollectionPrototype.zip;\nOrderedSetPrototype.zipWith = IndexedCollectionPrototype.zipWith;\nOrderedSetPrototype.zipAll = IndexedCollectionPrototype.zipAll;\n\nOrderedSetPrototype.__empty = emptyOrderedSet;\nOrderedSetPrototype.__make = makeOrderedSet;\n\nfunction makeOrderedSet(map, ownerID) {\n var set = Object.create(OrderedSetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n}\n\nvar EMPTY_ORDERED_SET;\nfunction emptyOrderedSet() {\n return (\n EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap()))\n );\n}\n\nvar PairSorting = {\n LeftThenRight: -1,\n RightThenLeft: +1,\n};\n\nfunction throwOnInvalidDefaultValues(defaultValues) {\n if (isRecord(defaultValues)) {\n throw new Error(\n 'Can not call `Record` with an immutable Record as default values. Use a plain javascript object instead.'\n );\n }\n\n if (isImmutable(defaultValues)) {\n throw new Error(\n 'Can not call `Record` with an immutable Collection as default values. Use a plain javascript object instead.'\n );\n }\n\n if (defaultValues === null || typeof defaultValues !== 'object') {\n throw new Error(\n 'Can not call `Record` with a non-object as default values. Use a plain javascript object instead.'\n );\n }\n}\n\nvar Record = function Record(defaultValues, name) {\n var hasInitialized;\n\n throwOnInvalidDefaultValues(defaultValues);\n\n var RecordType = function Record(values) {\n var this$1$1 = this;\n\n if (values instanceof RecordType) {\n return values;\n }\n if (!(this instanceof RecordType)) {\n return new RecordType(values);\n }\n if (!hasInitialized) {\n hasInitialized = true;\n var keys = Object.keys(defaultValues);\n var indices = (RecordTypePrototype._indices = {});\n // Deprecated: left to attempt not to break any external code which\n // relies on a ._name property existing on record instances.\n // Use Record.getDescriptiveName() instead\n RecordTypePrototype._name = name;\n RecordTypePrototype._keys = keys;\n RecordTypePrototype._defaultValues = defaultValues;\n for (var i = 0; i < keys.length; i++) {\n var propName = keys[i];\n indices[propName] = i;\n if (RecordTypePrototype[propName]) {\n /* eslint-disable no-console */\n typeof console === 'object' &&\n console.warn &&\n console.warn(\n 'Cannot define ' +\n recordName(this) +\n ' with property \"' +\n propName +\n '\" since that property name is part of the Record API.'\n );\n /* eslint-enable no-console */\n } else {\n setProp(RecordTypePrototype, propName);\n }\n }\n }\n this.__ownerID = undefined;\n this._values = List().withMutations(function (l) {\n l.setSize(this$1$1._keys.length);\n KeyedCollection(values).forEach(function (v, k) {\n l.set(this$1$1._indices[k], v === this$1$1._defaultValues[k] ? undefined : v);\n });\n });\n return this;\n };\n\n var RecordTypePrototype = (RecordType.prototype =\n Object.create(RecordPrototype));\n RecordTypePrototype.constructor = RecordType;\n\n if (name) {\n RecordType.displayName = name;\n }\n\n return RecordType;\n};\n\nRecord.prototype.toString = function toString () {\n var str = recordName(this) + ' { ';\n var keys = this._keys;\n var k;\n for (var i = 0, l = keys.length; i !== l; i++) {\n k = keys[i];\n str += (i ? ', ' : '') + k + ': ' + quoteString(this.get(k));\n }\n return str + ' }';\n};\n\nRecord.prototype.equals = function equals (other) {\n return (\n this === other ||\n (isRecord(other) && recordSeq(this).equals(recordSeq(other)))\n );\n};\n\nRecord.prototype.hashCode = function hashCode () {\n return recordSeq(this).hashCode();\n};\n\n// @pragma Access\n\nRecord.prototype.has = function has (k) {\n return this._indices.hasOwnProperty(k);\n};\n\nRecord.prototype.get = function get (k, notSetValue) {\n if (!this.has(k)) {\n return notSetValue;\n }\n var index = this._indices[k];\n var value = this._values.get(index);\n return value === undefined ? this._defaultValues[k] : value;\n};\n\n// @pragma Modification\n\nRecord.prototype.set = function set (k, v) {\n if (this.has(k)) {\n var newValues = this._values.set(\n this._indices[k],\n v === this._defaultValues[k] ? undefined : v\n );\n if (newValues !== this._values && !this.__ownerID) {\n return makeRecord(this, newValues);\n }\n }\n return this;\n};\n\nRecord.prototype.remove = function remove (k) {\n return this.set(k);\n};\n\nRecord.prototype.clear = function clear () {\n var newValues = this._values.clear().setSize(this._keys.length);\n\n return this.__ownerID ? this : makeRecord(this, newValues);\n};\n\nRecord.prototype.wasAltered = function wasAltered () {\n return this._values.wasAltered();\n};\n\nRecord.prototype.toSeq = function toSeq () {\n return recordSeq(this);\n};\n\nRecord.prototype.toJS = function toJS$1 () {\n return toJS(this);\n};\n\nRecord.prototype.entries = function entries () {\n return this.__iterator(ITERATE_ENTRIES);\n};\n\nRecord.prototype.__iterator = function __iterator (type, reverse) {\n return recordSeq(this).__iterator(type, reverse);\n};\n\nRecord.prototype.__iterate = function __iterate (fn, reverse) {\n return recordSeq(this).__iterate(fn, reverse);\n};\n\nRecord.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newValues = this._values.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._values = newValues;\n return this;\n }\n return makeRecord(this, newValues, ownerID);\n};\n\nRecord.isRecord = isRecord;\nRecord.getDescriptiveName = recordName;\nvar RecordPrototype = Record.prototype;\nRecordPrototype[IS_RECORD_SYMBOL] = true;\nRecordPrototype[DELETE] = RecordPrototype.remove;\nRecordPrototype.deleteIn = RecordPrototype.removeIn = deleteIn;\nRecordPrototype.getIn = getIn;\nRecordPrototype.hasIn = CollectionPrototype.hasIn;\nRecordPrototype.merge = merge$1;\nRecordPrototype.mergeWith = mergeWith$1;\nRecordPrototype.mergeIn = mergeIn;\nRecordPrototype.mergeDeep = mergeDeep;\nRecordPrototype.mergeDeepWith = mergeDeepWith;\nRecordPrototype.mergeDeepIn = mergeDeepIn;\nRecordPrototype.setIn = setIn;\nRecordPrototype.update = update;\nRecordPrototype.updateIn = updateIn;\nRecordPrototype.withMutations = withMutations;\nRecordPrototype.asMutable = asMutable;\nRecordPrototype.asImmutable = asImmutable;\nRecordPrototype[ITERATOR_SYMBOL] = RecordPrototype.entries;\nRecordPrototype.toJSON = RecordPrototype.toObject =\n CollectionPrototype.toObject;\nRecordPrototype.inspect = RecordPrototype.toSource = function () {\n return this.toString();\n};\n\nfunction makeRecord(likeRecord, values, ownerID) {\n var record = Object.create(Object.getPrototypeOf(likeRecord));\n record._values = values;\n record.__ownerID = ownerID;\n return record;\n}\n\nfunction recordName(record) {\n return record.constructor.displayName || record.constructor.name || 'Record';\n}\n\nfunction recordSeq(record) {\n return keyedSeqFromValue(record._keys.map(function (k) { return [k, record.get(k)]; }));\n}\n\nfunction setProp(prototype, name) {\n try {\n Object.defineProperty(prototype, name, {\n get: function () {\n return this.get(name);\n },\n set: function (value) {\n invariant(this.__ownerID, 'Cannot set on an immutable record.');\n this.set(name, value);\n },\n });\n } catch (error) {\n // Object.defineProperty failed. Probably IE8.\n }\n}\n\n/**\n * Returns a lazy Seq of `value` repeated `times` times. When `times` is\n * undefined, returns an infinite sequence of `value`.\n */\nvar Repeat = /*@__PURE__*/(function (IndexedSeq) {\n function Repeat(value, times) {\n if (!(this instanceof Repeat)) {\n return new Repeat(value, times);\n }\n this._value = value;\n this.size = times === undefined ? Infinity : Math.max(0, times);\n if (this.size === 0) {\n if (EMPTY_REPEAT) {\n return EMPTY_REPEAT;\n }\n EMPTY_REPEAT = this;\n }\n }\n\n if ( IndexedSeq ) Repeat.__proto__ = IndexedSeq;\n Repeat.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n Repeat.prototype.constructor = Repeat;\n\n Repeat.prototype.toString = function toString () {\n if (this.size === 0) {\n return 'Repeat []';\n }\n return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]';\n };\n\n Repeat.prototype.get = function get (index, notSetValue) {\n return this.has(index) ? this._value : notSetValue;\n };\n\n Repeat.prototype.includes = function includes (searchValue) {\n return is(this._value, searchValue);\n };\n\n Repeat.prototype.slice = function slice (begin, end) {\n var size = this.size;\n return wholeSlice(begin, end, size)\n ? this\n : new Repeat(\n this._value,\n resolveEnd(end, size) - resolveBegin(begin, size)\n );\n };\n\n Repeat.prototype.reverse = function reverse () {\n return this;\n };\n\n Repeat.prototype.indexOf = function indexOf (searchValue) {\n if (is(this._value, searchValue)) {\n return 0;\n }\n return -1;\n };\n\n Repeat.prototype.lastIndexOf = function lastIndexOf (searchValue) {\n if (is(this._value, searchValue)) {\n return this.size;\n }\n return -1;\n };\n\n Repeat.prototype.__iterate = function __iterate (fn, reverse) {\n var size = this.size;\n var i = 0;\n while (i !== size) {\n if (fn(this._value, reverse ? size - ++i : i++, this) === false) {\n break;\n }\n }\n return i;\n };\n\n Repeat.prototype.__iterator = function __iterator (type, reverse) {\n var this$1$1 = this;\n\n var size = this.size;\n var i = 0;\n return new Iterator(function () { return i === size\n ? iteratorDone()\n : iteratorValue(type, reverse ? size - ++i : i++, this$1$1._value); }\n );\n };\n\n Repeat.prototype.equals = function equals (other) {\n return other instanceof Repeat\n ? is(this._value, other._value)\n : deepEqual(other);\n };\n\n return Repeat;\n}(IndexedSeq));\n\nvar EMPTY_REPEAT;\n\nfunction fromJS(value, converter) {\n return fromJSWith(\n [],\n converter || defaultConverter,\n value,\n '',\n converter && converter.length > 2 ? [] : undefined,\n { '': value }\n );\n}\n\nfunction fromJSWith(stack, converter, value, key, keyPath, parentValue) {\n if (\n typeof value !== 'string' &&\n !isImmutable(value) &&\n (isArrayLike(value) || hasIterator(value) || isPlainObject(value))\n ) {\n if (~stack.indexOf(value)) {\n throw new TypeError('Cannot convert circular structure to Immutable');\n }\n stack.push(value);\n keyPath && key !== '' && keyPath.push(key);\n var converted = converter.call(\n parentValue,\n key,\n Seq(value).map(function (v, k) { return fromJSWith(stack, converter, v, k, keyPath, value); }\n ),\n keyPath && keyPath.slice()\n );\n stack.pop();\n keyPath && keyPath.pop();\n return converted;\n }\n return value;\n}\n\nfunction defaultConverter(k, v) {\n // Effectively the opposite of \"Collection.toSeq()\"\n return isIndexed(v) ? v.toList() : isKeyed(v) ? v.toMap() : v.toSet();\n}\n\nvar version = \"4.3.5\";\n\nvar Immutable = {\n version: version,\n\n Collection: Collection,\n // Note: Iterable is deprecated\n Iterable: Collection,\n\n Seq: Seq,\n Map: Map,\n OrderedMap: OrderedMap,\n List: List,\n Stack: Stack,\n Set: Set,\n OrderedSet: OrderedSet,\n PairSorting: PairSorting,\n\n Record: Record,\n Range: Range,\n Repeat: Repeat,\n\n is: is,\n fromJS: fromJS,\n hash: hash,\n\n isImmutable: isImmutable,\n isCollection: isCollection,\n isKeyed: isKeyed,\n isIndexed: isIndexed,\n isAssociative: isAssociative,\n isOrdered: isOrdered,\n isValueObject: isValueObject,\n isPlainObject: isPlainObject,\n isSeq: isSeq,\n isList: isList,\n isMap: isMap,\n isOrderedMap: isOrderedMap,\n isStack: isStack,\n isSet: isSet,\n isOrderedSet: isOrderedSet,\n isRecord: isRecord,\n\n get: get,\n getIn: getIn$1,\n has: has,\n hasIn: hasIn$1,\n merge: merge,\n mergeDeep: mergeDeep$1,\n mergeWith: mergeWith,\n mergeDeepWith: mergeDeepWith$1,\n remove: remove,\n removeIn: removeIn,\n set: set,\n setIn: setIn$1,\n update: update$1,\n updateIn: updateIn$1,\n};\n\n// Note: Iterable is deprecated\nvar Iterable = Collection;\n\nexport default Immutable;\nexport { Collection, Iterable, List, Map, OrderedMap, OrderedSet, PairSorting, Range, Record, Repeat, Seq, Set, Stack, fromJS, get, getIn$1 as getIn, has, hasIn$1 as hasIn, hash, is, isAssociative, isCollection, isImmutable, isIndexed, isKeyed, isList, isMap, isOrdered, isOrderedMap, isOrderedSet, isPlainObject, isRecord, isSeq, isSet, isStack, isValueObject, merge, mergeDeep$1 as mergeDeep, mergeDeepWith$1 as mergeDeepWith, mergeWith, remove, removeIn, set, setIn$1 as setIn, update$1 as update, updateIn$1 as updateIn, version };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * Constants.\n */\n\nvar IS_MAC = typeof window != 'undefined' && /Mac|iPod|iPhone|iPad/.test(window.navigator.platform);\n\nvar MODIFIERS = {\n alt: 'altKey',\n control: 'ctrlKey',\n meta: 'metaKey',\n shift: 'shiftKey'\n};\n\nvar ALIASES = {\n add: '+',\n break: 'pause',\n cmd: 'meta',\n command: 'meta',\n ctl: 'control',\n ctrl: 'control',\n del: 'delete',\n down: 'arrowdown',\n esc: 'escape',\n ins: 'insert',\n left: 'arrowleft',\n mod: IS_MAC ? 'meta' : 'control',\n opt: 'alt',\n option: 'alt',\n return: 'enter',\n right: 'arrowright',\n space: ' ',\n spacebar: ' ',\n up: 'arrowup',\n win: 'meta',\n windows: 'meta'\n};\n\nvar CODES = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n control: 17,\n alt: 18,\n pause: 19,\n capslock: 20,\n escape: 27,\n ' ': 32,\n pageup: 33,\n pagedown: 34,\n end: 35,\n home: 36,\n arrowleft: 37,\n arrowup: 38,\n arrowright: 39,\n arrowdown: 40,\n insert: 45,\n delete: 46,\n meta: 91,\n numlock: 144,\n scrolllock: 145,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n '\\'': 222\n};\n\nfor (var f = 1; f < 20; f++) {\n CODES['f' + f] = 111 + f;\n}\n\n/**\n * Is hotkey?\n */\n\nfunction isHotkey(hotkey, options, event) {\n if (options && !('byKey' in options)) {\n event = options;\n options = null;\n }\n\n if (!Array.isArray(hotkey)) {\n hotkey = [hotkey];\n }\n\n var array = hotkey.map(function (string) {\n return parseHotkey(string, options);\n });\n var check = function check(e) {\n return array.some(function (object) {\n return compareHotkey(object, e);\n });\n };\n var ret = event == null ? check : check(event);\n return ret;\n}\n\nfunction isCodeHotkey(hotkey, event) {\n return isHotkey(hotkey, event);\n}\n\nfunction isKeyHotkey(hotkey, event) {\n return isHotkey(hotkey, { byKey: true }, event);\n}\n\n/**\n * Parse.\n */\n\nfunction parseHotkey(hotkey, options) {\n var byKey = options && options.byKey;\n var ret = {};\n\n // Special case to handle the `+` key since we use it as a separator.\n hotkey = hotkey.replace('++', '+add');\n var values = hotkey.split('+');\n var length = values.length;\n\n // Ensure that all the modifiers are set to false unless the hotkey has them.\n\n for (var k in MODIFIERS) {\n ret[MODIFIERS[k]] = false;\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = values[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var value = _step.value;\n\n var optional = value.endsWith('?') && value.length > 1;\n\n if (optional) {\n value = value.slice(0, -1);\n }\n\n var name = toKeyName(value);\n var modifier = MODIFIERS[name];\n\n if (value.length > 1 && !modifier && !ALIASES[value] && !CODES[name]) {\n throw new TypeError('Unknown modifier: \"' + value + '\"');\n }\n\n if (length === 1 || !modifier) {\n if (byKey) {\n ret.key = name;\n } else {\n ret.which = toKeyCode(value);\n }\n }\n\n if (modifier) {\n ret[modifier] = optional ? null : true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return ret;\n}\n\n/**\n * Compare.\n */\n\nfunction compareHotkey(object, event) {\n for (var key in object) {\n var expected = object[key];\n var actual = void 0;\n\n if (expected == null) {\n continue;\n }\n\n if (key === 'key' && event.key != null) {\n actual = event.key.toLowerCase();\n } else if (key === 'which') {\n actual = expected === 91 && event.which === 93 ? 91 : event.which;\n } else {\n actual = event[key];\n }\n\n if (actual == null && expected === false) {\n continue;\n }\n\n if (actual !== expected) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Utils.\n */\n\nfunction toKeyCode(name) {\n name = toKeyName(name);\n var code = CODES[name] || name.toUpperCase().charCodeAt(0);\n return code;\n}\n\nfunction toKeyName(name) {\n name = name.toLowerCase();\n name = ALIASES[name] || name;\n return name;\n}\n\n/**\n * Export.\n */\n\nexports.default = isHotkey;\nexports.isHotkey = isHotkey;\nexports.isCodeHotkey = isCodeHotkey;\nexports.isKeyHotkey = isKeyHotkey;\nexports.parseHotkey = parseHotkey;\nexports.compareHotkey = compareHotkey;\nexports.toKeyCode = toKeyCode;\nexports.toKeyName = toKeyName;","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\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","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\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 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var action,\n setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q1',\n effect: yFork(action)\n };\n }\n }, 'q1', \"takeEvery(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction takeLatest(patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yCancel = function yCancel(task) {\n return {\n done: false,\n value: cancel(task)\n };\n };\n\n var task, action;\n\n var setTask = function setTask(t) {\n return task = t;\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return task ? {\n nextState: 'q3',\n effect: yCancel(task)\n } : {\n nextState: 'q1',\n effect: yFork(action),\n stateUpdater: setTask\n };\n },\n q3: function q3() {\n return {\n nextState: 'q1',\n effect: yFork(action),\n stateUpdater: setTask\n };\n }\n }, 'q1', \"takeLatest(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction takeLeading(patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n\n var yCall = function yCall(ac) {\n return {\n done: false,\n value: call.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var action;\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q1',\n effect: yCall(action)\n };\n }\n }, 'q1', \"takeLeading(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction throttle(delayLength, patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var action, channel$1;\n\n var yTake = function yTake() {\n return {\n done: false,\n value: take(channel$1)\n };\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yDelay = {\n done: false,\n value: delay(delayLength)\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n var setChannel = function setChannel(ch) {\n return channel$1 = ch;\n };\n\n var needsChannel = !channel(patternOrChannel);\n\n if (!needsChannel) {\n setChannel(patternOrChannel);\n }\n\n return fsmIterator({\n q1: function q1() {\n var yActionChannel = {\n done: false,\n value: actionChannel(patternOrChannel, sliding(1))\n };\n return {\n nextState: 'q2',\n effect: yActionChannel,\n stateUpdater: setChannel\n };\n },\n q2: function q2() {\n return {\n nextState: 'q3',\n effect: yTake(),\n stateUpdater: setAction\n };\n },\n q3: function q3() {\n return {\n nextState: 'q4',\n effect: yFork(action)\n };\n },\n q4: function q4() {\n return {\n nextState: 'q2',\n effect: yDelay\n };\n }\n }, needsChannel ? 'q1' : 'q2', \"throttle(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nfunction retry(maxTries, delayLength, fn) {\n var counter = maxTries;\n\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var yCall = {\n done: false,\n value: call.apply(void 0, [fn].concat(args))\n };\n var yDelay = {\n done: false,\n value: delay(delayLength)\n };\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yCall,\n errorState: 'q10'\n };\n },\n q2: function q2() {\n return {\n nextState: qEnd\n };\n },\n q10: function q10(error) {\n counter -= 1;\n\n if (counter <= 0) {\n throw error;\n }\n\n return {\n nextState: 'q1',\n effect: yDelay\n };\n }\n }, 'q1', \"retry(\" + fn.name + \")\");\n}\n\nfunction debounceHelper(delayLength, patternOrChannel, worker) {\n for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = arguments[_key];\n }\n\n var action, raceOutput;\n var yTake = {\n done: false,\n value: take(patternOrChannel)\n };\n var yRace = {\n done: false,\n value: race({\n action: take(patternOrChannel),\n debounce: delay(delayLength)\n })\n };\n\n var yFork = function yFork(ac) {\n return {\n done: false,\n value: fork.apply(void 0, [worker].concat(args, [ac]))\n };\n };\n\n var yNoop = function yNoop(value) {\n return {\n done: false,\n value: value\n };\n };\n\n var setAction = function setAction(ac) {\n return action = ac;\n };\n\n var setRaceOutput = function setRaceOutput(ro) {\n return raceOutput = ro;\n };\n\n return fsmIterator({\n q1: function q1() {\n return {\n nextState: 'q2',\n effect: yTake,\n stateUpdater: setAction\n };\n },\n q2: function q2() {\n return {\n nextState: 'q3',\n effect: yRace,\n stateUpdater: setRaceOutput\n };\n },\n q3: function q3() {\n return raceOutput.debounce ? {\n nextState: 'q1',\n effect: yFork(action)\n } : {\n nextState: 'q2',\n effect: yNoop(raceOutput.action),\n stateUpdater: setAction\n };\n }\n }, 'q1', \"debounce(\" + safeName(patternOrChannel) + \", \" + worker.name + \")\");\n}\n\nvar validateTakeEffect = function validateTakeEffect(fn, patternOrChannel, worker) {\n check(patternOrChannel, notUndef, fn.name + \" requires a pattern or channel\");\n check(worker, notUndef, fn.name + \" requires a saga parameter\");\n};\n\nfunction takeEvery$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeEvery$1, patternOrChannel, worker);\n }\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n return fork.apply(void 0, [takeEvery, patternOrChannel, worker].concat(args));\n}\nfunction takeLatest$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeLatest$1, patternOrChannel, worker);\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n return fork.apply(void 0, [takeLatest, patternOrChannel, worker].concat(args));\n}\nfunction takeLeading$1(patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n validateTakeEffect(takeLeading$1, patternOrChannel, worker);\n }\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n args[_key3 - 2] = arguments[_key3];\n }\n\n return fork.apply(void 0, [takeLeading, patternOrChannel, worker].concat(args));\n}\nfunction throttle$1(ms, patternOrChannel, worker) {\n if (process.env.NODE_ENV !== 'production') {\n check(patternOrChannel, notUndef, \"throttle requires a pattern or channel\");\n check(worker, notUndef, 'throttle requires a saga parameter');\n }\n\n for (var _len4 = arguments.length, args = new Array(_len4 > 3 ? _len4 - 3 : 0), _key4 = 3; _key4 < _len4; _key4++) {\n args[_key4 - 3] = arguments[_key4];\n }\n\n return fork.apply(void 0, [throttle, ms, patternOrChannel, worker].concat(args));\n}\nfunction retry$1(maxTries, delayLength, worker) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 3 ? _len5 - 3 : 0), _key5 = 3; _key5 < _len5; _key5++) {\n args[_key5 - 3] = arguments[_key5];\n }\n\n return call.apply(void 0, [retry, maxTries, delayLength, worker].concat(args));\n}\nfunction debounce(delayLength, pattern, worker) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 3 ? _len6 - 3 : 0), _key6 = 3; _key6 < _len6; _key6++) {\n args[_key6 - 3] = arguments[_key6];\n }\n\n return fork.apply(void 0, [debounceHelper, delayLength, pattern, worker].concat(args));\n}\n\nexport { debounce, retry$1 as retry, takeEvery$1 as takeEvery, takeLatest$1 as takeLatest, takeLeading$1 as takeLeading, throttle$1 as throttle };\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>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","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","let colors = require('./lib/public/colors')\nmodule.exports = (colors.__esModule ? colors : { default: colors }).default\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _log = /*#__PURE__*/ _interop_require_default(require(\"../util/log\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction warn({ version , from , to }) {\n _log.default.warn(`${from}-color-renamed`, [\n `As of Tailwind CSS ${version}, \\`${from}\\` has been renamed to \\`${to}\\`.`,\n \"Update your configuration file to silence this warning.\"\n ]);\n}\nconst _default = {\n inherit: \"inherit\",\n current: \"currentColor\",\n transparent: \"transparent\",\n black: \"#000\",\n white: \"#fff\",\n slate: {\n 50: \"#f8fafc\",\n 100: \"#f1f5f9\",\n 200: \"#e2e8f0\",\n 300: \"#cbd5e1\",\n 400: \"#94a3b8\",\n 500: \"#64748b\",\n 600: \"#475569\",\n 700: \"#334155\",\n 800: \"#1e293b\",\n 900: \"#0f172a\",\n 950: \"#020617\"\n },\n gray: {\n 50: \"#f9fafb\",\n 100: \"#f3f4f6\",\n 200: \"#e5e7eb\",\n 300: \"#d1d5db\",\n 400: \"#9ca3af\",\n 500: \"#6b7280\",\n 600: \"#4b5563\",\n 700: \"#374151\",\n 800: \"#1f2937\",\n 900: \"#111827\",\n 950: \"#030712\"\n },\n zinc: {\n 50: \"#fafafa\",\n 100: \"#f4f4f5\",\n 200: \"#e4e4e7\",\n 300: \"#d4d4d8\",\n 400: \"#a1a1aa\",\n 500: \"#71717a\",\n 600: \"#52525b\",\n 700: \"#3f3f46\",\n 800: \"#27272a\",\n 900: \"#18181b\",\n 950: \"#09090b\"\n },\n neutral: {\n 50: \"#fafafa\",\n 100: \"#f5f5f5\",\n 200: \"#e5e5e5\",\n 300: \"#d4d4d4\",\n 400: \"#a3a3a3\",\n 500: \"#737373\",\n 600: \"#525252\",\n 700: \"#404040\",\n 800: \"#262626\",\n 900: \"#171717\",\n 950: \"#0a0a0a\"\n },\n stone: {\n 50: \"#fafaf9\",\n 100: \"#f5f5f4\",\n 200: \"#e7e5e4\",\n 300: \"#d6d3d1\",\n 400: \"#a8a29e\",\n 500: \"#78716c\",\n 600: \"#57534e\",\n 700: \"#44403c\",\n 800: \"#292524\",\n 900: \"#1c1917\",\n 950: \"#0c0a09\"\n },\n red: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\",\n 950: \"#450a0a\"\n },\n orange: {\n 50: \"#fff7ed\",\n 100: \"#ffedd5\",\n 200: \"#fed7aa\",\n 300: \"#fdba74\",\n 400: \"#fb923c\",\n 500: \"#f97316\",\n 600: \"#ea580c\",\n 700: \"#c2410c\",\n 800: \"#9a3412\",\n 900: \"#7c2d12\",\n 950: \"#431407\"\n },\n amber: {\n 50: \"#fffbeb\",\n 100: \"#fef3c7\",\n 200: \"#fde68a\",\n 300: \"#fcd34d\",\n 400: \"#fbbf24\",\n 500: \"#f59e0b\",\n 600: \"#d97706\",\n 700: \"#b45309\",\n 800: \"#92400e\",\n 900: \"#78350f\",\n 950: \"#451a03\"\n },\n yellow: {\n 50: \"#fefce8\",\n 100: \"#fef9c3\",\n 200: \"#fef08a\",\n 300: \"#fde047\",\n 400: \"#facc15\",\n 500: \"#eab308\",\n 600: \"#ca8a04\",\n 700: \"#a16207\",\n 800: \"#854d0e\",\n 900: \"#713f12\",\n 950: \"#422006\"\n },\n lime: {\n 50: \"#f7fee7\",\n 100: \"#ecfccb\",\n 200: \"#d9f99d\",\n 300: \"#bef264\",\n 400: \"#a3e635\",\n 500: \"#84cc16\",\n 600: \"#65a30d\",\n 700: \"#4d7c0f\",\n 800: \"#3f6212\",\n 900: \"#365314\",\n 950: \"#1a2e05\"\n },\n green: {\n 50: \"#f0fdf4\",\n 100: \"#dcfce7\",\n 200: \"#bbf7d0\",\n 300: \"#86efac\",\n 400: \"#4ade80\",\n 500: \"#22c55e\",\n 600: \"#16a34a\",\n 700: \"#15803d\",\n 800: \"#166534\",\n 900: \"#14532d\",\n 950: \"#052e16\"\n },\n emerald: {\n 50: \"#ecfdf5\",\n 100: \"#d1fae5\",\n 200: \"#a7f3d0\",\n 300: \"#6ee7b7\",\n 400: \"#34d399\",\n 500: \"#10b981\",\n 600: \"#059669\",\n 700: \"#047857\",\n 800: \"#065f46\",\n 900: \"#064e3b\",\n 950: \"#022c22\"\n },\n teal: {\n 50: \"#f0fdfa\",\n 100: \"#ccfbf1\",\n 200: \"#99f6e4\",\n 300: \"#5eead4\",\n 400: \"#2dd4bf\",\n 500: \"#14b8a6\",\n 600: \"#0d9488\",\n 700: \"#0f766e\",\n 800: \"#115e59\",\n 900: \"#134e4a\",\n 950: \"#042f2e\"\n },\n cyan: {\n 50: \"#ecfeff\",\n 100: \"#cffafe\",\n 200: \"#a5f3fc\",\n 300: \"#67e8f9\",\n 400: \"#22d3ee\",\n 500: \"#06b6d4\",\n 600: \"#0891b2\",\n 700: \"#0e7490\",\n 800: \"#155e75\",\n 900: \"#164e63\",\n 950: \"#083344\"\n },\n sky: {\n 50: \"#f0f9ff\",\n 100: \"#e0f2fe\",\n 200: \"#bae6fd\",\n 300: \"#7dd3fc\",\n 400: \"#38bdf8\",\n 500: \"#0ea5e9\",\n 600: \"#0284c7\",\n 700: \"#0369a1\",\n 800: \"#075985\",\n 900: \"#0c4a6e\",\n 950: \"#082f49\"\n },\n blue: {\n 50: \"#eff6ff\",\n 100: \"#dbeafe\",\n 200: \"#bfdbfe\",\n 300: \"#93c5fd\",\n 400: \"#60a5fa\",\n 500: \"#3b82f6\",\n 600: \"#2563eb\",\n 700: \"#1d4ed8\",\n 800: \"#1e40af\",\n 900: \"#1e3a8a\",\n 950: \"#172554\"\n },\n indigo: {\n 50: \"#eef2ff\",\n 100: \"#e0e7ff\",\n 200: \"#c7d2fe\",\n 300: \"#a5b4fc\",\n 400: \"#818cf8\",\n 500: \"#6366f1\",\n 600: \"#4f46e5\",\n 700: \"#4338ca\",\n 800: \"#3730a3\",\n 900: \"#312e81\",\n 950: \"#1e1b4b\"\n },\n violet: {\n 50: \"#f5f3ff\",\n 100: \"#ede9fe\",\n 200: \"#ddd6fe\",\n 300: \"#c4b5fd\",\n 400: \"#a78bfa\",\n 500: \"#8b5cf6\",\n 600: \"#7c3aed\",\n 700: \"#6d28d9\",\n 800: \"#5b21b6\",\n 900: \"#4c1d95\",\n 950: \"#2e1065\"\n },\n purple: {\n 50: \"#faf5ff\",\n 100: \"#f3e8ff\",\n 200: \"#e9d5ff\",\n 300: \"#d8b4fe\",\n 400: \"#c084fc\",\n 500: \"#a855f7\",\n 600: \"#9333ea\",\n 700: \"#7e22ce\",\n 800: \"#6b21a8\",\n 900: \"#581c87\",\n 950: \"#3b0764\"\n },\n fuchsia: {\n 50: \"#fdf4ff\",\n 100: \"#fae8ff\",\n 200: \"#f5d0fe\",\n 300: \"#f0abfc\",\n 400: \"#e879f9\",\n 500: \"#d946ef\",\n 600: \"#c026d3\",\n 700: \"#a21caf\",\n 800: \"#86198f\",\n 900: \"#701a75\",\n 950: \"#4a044e\"\n },\n pink: {\n 50: \"#fdf2f8\",\n 100: \"#fce7f3\",\n 200: \"#fbcfe8\",\n 300: \"#f9a8d4\",\n 400: \"#f472b6\",\n 500: \"#ec4899\",\n 600: \"#db2777\",\n 700: \"#be185d\",\n 800: \"#9d174d\",\n 900: \"#831843\",\n 950: \"#500724\"\n },\n rose: {\n 50: \"#fff1f2\",\n 100: \"#ffe4e6\",\n 200: \"#fecdd3\",\n 300: \"#fda4af\",\n 400: \"#fb7185\",\n 500: \"#f43f5e\",\n 600: \"#e11d48\",\n 700: \"#be123c\",\n 800: \"#9f1239\",\n 900: \"#881337\",\n 950: \"#4c0519\"\n },\n get lightBlue () {\n warn({\n version: \"v2.2\",\n from: \"lightBlue\",\n to: \"sky\"\n });\n return this.sky;\n },\n get warmGray () {\n warn({\n version: \"v3.0\",\n from: \"warmGray\",\n to: \"stone\"\n });\n return this.stone;\n },\n get trueGray () {\n warn({\n version: \"v3.0\",\n from: \"trueGray\",\n to: \"neutral\"\n });\n return this.neutral;\n },\n get coolGray () {\n warn({\n version: \"v3.0\",\n from: \"coolGray\",\n to: \"gray\"\n });\n return this.gray;\n },\n get blueGray () {\n warn({\n version: \"v3.0\",\n from: \"blueGray\",\n to: \"slate\"\n });\n return this.slate;\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n dim: function() {\n return dim;\n },\n default: function() {\n return _default;\n }\n});\nconst _picocolors = /*#__PURE__*/ _interop_require_default(require(\"picocolors\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet alreadyShown = new Set();\nfunction log(type, messages, key) {\n if (typeof process !== \"undefined\" && process.env.JEST_WORKER_ID) return;\n if (key && alreadyShown.has(key)) return;\n if (key) alreadyShown.add(key);\n console.warn(\"\");\n messages.forEach((message)=>console.warn(type, \"-\", message));\n}\nfunction dim(input) {\n return _picocolors.default.dim(input);\n}\nconst _default = {\n info (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.cyan(\"info\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n },\n warn (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.yellow(\"warn\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n },\n risk (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.magenta(\"risk\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n }\n};\n","/**\n * @license React\n * use-sync-external-store-with-selector.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 g=require(\"react\");function n(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var p=\"function\"===typeof Object.is?Object.is:n,q=g.useSyncExternalStore,r=g.useRef,t=g.useEffect,u=g.useMemo,v=g.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,h){var c=r(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=u(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==h&&f.hasValue){var b=f.value;if(h(b,a))return k=b}return k=a}b=k;if(p(d,a))return b;var e=l(a);if(void 0!==h&&h(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,h]);var d=q(a,c[0],c[1]);\nt(function(){f.hasValue=!0;f.value=d},[d]);v(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/use-sync-external-store-with-selector.production.min.js');\n} else {\n module.exports = require('./cjs/use-sync-external-store-with-selector.development.js');\n}\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","import { v4 as UUID } from \"uuid\";\n\nexport function createAction(\n type: Type,\n payload: Payload,\n metadata?: Meta\n): Store.Action {\n const id = UUID();\n return { id, type, payload, metadata: metadata ?? {}, ts: Date.now() };\n}\n\nexport function createIOAction<\n Type = string,\n Payload = any,\n Success = any,\n Meta = any\n>(type: Type, payload: Payload, metadata?: Meta): Store.IOAction {\n let error: (reason: any) => void = (_error) => {};\n\n let success: (data: Success) => void = (_data) => {};\n\n let promise = new Promise((res, rej) => {\n error = rej;\n success = res;\n });\n\n const id = UUID();\n\n const controller = new AbortController();\n\n return {\n\n id: id,\n\n type: type,\n\n metadata: metadata ?? {},\n\n resolve: { error, success },\n\n payload: payload,\n\n signal: controller.signal,\n\n catch: (callback: (error: any) => R) => {\n return promise.catch(callback);\n },\n\n then: (\n onFullfill: (data: Success) => R,\n onReject?: (error: string) => E\n ) => {\n return promise.then(onFullfill, onReject);\n },\n\n abort: () => {\n return controller.abort();\n },\n\n finally: (callback: () => R) => {\n return promise.finally(callback);\n },\n\n ts: Date.now(),\n };\n}\n","import { createAction, createIOAction } from \"../../action\";\n\nexport interface IParams{[key: string]: any}\nexport const APP_INIT = \"APP_INIT\";\nexport type APP_INIT = typeof APP_INIT;\nexport type InitAction = Store.Action;\nexport function initStore(params: IParams = {}): InitAction {\n return createAction(APP_INIT, params);\n}\n","import { createAction, createIOAction } from \"../../action\";\n\nexport const AUTH_LOGIN = \"AUTH_LOGIN\";\nexport type AUTH_LOGIN = typeof AUTH_LOGIN;\nexport interface ILoginParams {username: string; password: string}\nexport type LoginAction = Store.IOAction;\nexport function login(params: ILoginParams): LoginAction{\n return createIOAction(AUTH_LOGIN, params);\n}\n\nexport const AUTH_LOGOUT = \"AUTH_LOGOUT\";\nexport type AUTH_LOGOUT = typeof AUTH_LOGOUT;\nexport type LogoutAction = Store.IOAction;\nexport function logout(): LogoutAction{\n return createIOAction(AUTH_LOGOUT, {});\n}\n\nexport const AUTH_REQUEST_RESET_PHONE_CODE = \"AUTH_REQUEST_RESET_PHONE_CODE\";\nexport type AUTH_REQUEST_RESET_PHONE_CODE = typeof AUTH_REQUEST_RESET_PHONE_CODE;\nexport interface IPasswordResetParams {username: string; phone: string}\nexport type IResetPasswordReqAction = Store.IOAction;\nexport function reset(params: IPasswordResetParams): IResetPasswordReqAction{\n return createIOAction(AUTH_REQUEST_RESET_PHONE_CODE, params);\n}\n","import { Record } from 'immutable';\n\nexport class CampusRecord extends Record({\n locale: \"en_US\",\n lpack: {},\n name: \"Campus Name\",\n}) {}\n\nexport class CampusAttendance extends Record({\n id: \"\",\n notes: \"\",\n type: 0,\n user_id: \"\",\n school_id: \"\",\n learner_id: \"\",\n session_id: \"\",\n created_at: \"\",\n}) {}\n\n\nexport class CampusEvent extends Record({\n id: \"\",\n name: \"\",\n description: \"\",\n start_date: \"\",\n stop_date: \"\",\n school_id: \"\",\n location_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class CampusSchool extends Record({\n id: \"\",\n cc: \"\",\n name: \"\",\n title: \"\",\n image_path: null,\n owner_id: \"\",\n data: {},\n color: \"black\",\n location: \"\",\n description: \"\",\n created_at: \"\",\n}) {}\n\nexport class CampusContact extends Record({\n id: \"\",\n name: \"\",\n phone: \"\",\n priority: 0,\n school_id: \"\",\n student_id: \"\",\n created_at: \"\",\n}){}\n\nexport class CampusDiscipline extends Record({\n id: \"\",\n name: \"\",\n school_id: \"\",\n created_at: \"\",\n description: \"\",\n image_path: null,\n}) {}\n\nexport class CampusSubject extends Record({\n id: \"\",\n name: \"\",\n color: \"\",\n school_id: \"\",\n discipline_id: \"\",\n image_path: null,\n description: \"\",\n created_at: \"\",\n}) {}\n\nexport class CampusCourse extends Record({\n id: \"\",\n name: \"\",\n weight: 0.0,\n image_path: null,\n description: \"\",\n is_published: false,\n term_id: \"\",\n level_id: \"\",\n subject_id: \"\",\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class CampusTopic extends Record({\n id: \"\",\n name: \"\",\n number: 0,\n description: \"\",\n course_id: \"\",\n school_id: \"\",\n subject_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class CampusUser extends Record({\n id: \"\",\n bio: \"\",\n title: \"\",\n last_name: \"\",\n middle_name: \"\",\n first_name: \"\",\n image_path: null,\n school_id: \"\",\n created_at: \"\",\n}) {\n\n get name() {\n return this.names;\n }\n\n get names() {\n return (`${this.title ?? \"\"} ${this.first_name ?? \"\"} ${this.last_name ?? \"\"}`).trim();\n }\n\n get fullnames() {\n return (`${this.first_name ?? \"\"} ${this.middle_name ?? \"\"} ${this.last_name ?? \"\"}`).trim();\n }\n}\n\nexport class CampusLearner extends Record({\n id: \"\",\n last_name: \"\",\n middle_name: \"\",\n first_name: \"\",\n term_id: \"\",\n classroom_id: \"\",\n school_id: \"\",\n image_path: null,\n student_id: \"\",\n created_at: \"\",\n}){\n get name() {\n return `${this.first_name} ${this.last_name}`;\n }\n\n get names() {\n return `${this.first_name} ${this.last_name}`;\n }\n\n get fullnames() {\n return `${this.first_name} ${this.middle_name} ${this.last_name}`;\n }\n}\n\nexport class CampusRequest extends Record({\n id: \"\",\n user_id: \"\",\n school_id: \"\",\n created_at: \"\",\n approved_at: \"\",\n}) {}\n\nexport class CampusCycle extends Record({\n id: \"\",\n name: \"\",\n start_date: \"\",\n end_date: \"\",\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class CampusTerm extends Record({\n id: \"\",\n name: \"\",\n is_active: false,\n start_date: \"\",\n stop_date: \"\",\n capacity: 0,\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class CampusSession extends Record({\n id: \"\",\n name: \"\",\n end_at: \"\",\n start_at: \"\",\n classroom_id: \"\",\n lesson_id: \"\",\n school_id: \"\",\n user_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class CampusLecture extends Record({\n id: \"\",\n name: \"\",\n end_at: \"\",\n user_id: \"\",\n term_id: \"\",\n start_at: \"\",\n classroom_id: \"\",\n topic_id: \"\",\n course_id: \"\",\n lesson_id: \"\",\n school_id: \"\",\n subject_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class CampusInstructor extends Record({\n id: \"\",\n level: 9999999,\n term_id: \"\",\n user_id: \"\",\n classroom_id: \"\",\n level_id: \"\",\n member_id: \"\",\n course_id: \"\",\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class CampusMembership extends Record({\n id: \"\",\n user_id: \"\",\n role_id: \"\",\n suspended: false,\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class CampusLesson extends Record({\n id: \"\",\n name: \"\",\n number: 0,\n user_id: \"\",\n published: -1,\n max_score: 0,\n image_path: null,\n description: \"\",\n topic_id: \"\",\n school_id: \"\",\n created_at: \"\",\n}) {\n\n get is_approved() {\n return this.published === 1;\n }\n\n get is_gradable() {\n return this.max_score > 0;\n }\n\n get is_published() {\n return this.published === 1;\n }\n \n get is_pending() {\n return this.published === 0;\n }\n\n get is_draft() {\n return this.published === -1;\n }\n\n is_author(user_id?: string) {\n return this.user_id === user_id;\n }\n}\n\nexport class CampusMember extends Record({\n id: \"\",\n user_id: \"\",\n role_id: \"\",\n metadata: {},\n notes: \"\",\n school_id: \"\",\n created_at: \"\",\n}) {\n is_user(user_id?: string) {\n return this.user_id === user_id;\n }\n}\n\nexport class CampusLevel extends Record({\n id: \"\",\n name: \"\",\n level: 0,\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class CampusClassroom extends Record({\n id: \"\",\n name: \"\",\n capacity: 0,\n term_id: \"\",\n level_id: \"\",\n description: \"\",\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class CampusRole extends Record({\n id: \"\",\n name: \"\",\n type: 0,\n color: \"\",\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class CampusPermission extends Record({\n id: \"\",\n caps: [],\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class CampusEducator extends Record({\n id: \"\",\n caps: [],\n user: {},\n course: {},\n school: {},\n user_id: \"\",\n member_id: \"\",\n classroom_id: \"\",\n course_id: \"\",\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class CampusStudent extends Record({\n id: \"\",\n image_path: null,\n dob: \"\",\n data: {},\n last_name: \"\",\n first_name: \"\",\n middle_name: \"\",\n classroom_id: \"\",\n school_id: \"\",\n created_at: \"\",\n is_archived: true,\n is_suspended: true,\n}) {\n\n get name() {\n return `${this.first_name} ${this.last_name}`;\n }\n\n get names() {\n return `${this.first_name} ${this.last_name}`;\n }\n\n get fullnames() {\n return `${this.first_name} ${this.middle_name} ${this.last_name}`;\n }\n}\n\nexport class CampusResult extends Record({\n id: \"\",\n score: 0,\n notes: \"\",\n user_id: \"\",\n school_id: \"\",\n session_id: \"\",\n learner_id: \"\",\n created_at: \"\",\n}) {\n \n}\n\nexport class CampusMySchedule extends Record({\n id: \"\",\n name: \"\",\n classroom_id: \"\",\n user_id: \"\",\n lesson_id: \"\",\n school_id: \"\",\n start_at: \"\",\n end_at: \"\",\n created_at: \"\",\n topic_id: \"\",\n course_id: \"\",\n member_id: \"\",\n subject_id: \"\",\n}) {}\n","import { Record } from \"immutable\";\n\nexport class Term extends Record({id:\"\",name:\"\",created_at:\"\"}) {}\n","import { Record } from 'immutable';\n\nexport class User extends Record({\n id: \"\",\n bio: \"\",\n title: \"\",\n last_name: \"\",\n first_name: \"\",\n middle_name: \"\",\n image_path: null,\n school_id: \"\",\n created_at: \"\",\n}) {\n\n get name() {\n return this.names;\n }\n\n get names() {\n return (`${this.title ?? \"\"} ${this.first_name ?? \"\"} ${this.last_name ?? \"\"}`).trim();\n }\n\n get fullnames() {\n return (`${this.first_name ?? \"\"} ${this.middle_name ?? \"\"} ${this.last_name ?? \"\"}`).trim();\n }\n}\n\n","import { Record } from 'immutable';\n\nexport class Campus extends Record({\n name: \" Name\",\n lpack: {},\n locale: \"en_US\",\n}) {}\n\nexport class Attendance extends Record({\n id: \"\",\n type: 0,\n notes: \"\",\n user_id: \"\",\n school_id: \"\",\n learner_id: \"\",\n session_id: \"\",\n created_at: \"\",\n}) {}\n\n\nexport class School extends Record({\n id: \"\",\n cc: \"\",\n name: \"\",\n title: \"\",\n image_path: null,\n owner_id: \"\",\n data: {},\n color: \"black\",\n location: \"\",\n created_at: \"\",\n description: \"\",\n}) {}\n\nexport class Contact extends Record({\n id: \"\",\n name: \"\",\n phone: \"\",\n priority: 0,\n school_id: \"\",\n student_id: \"\",\n created_at: \"\",\n}){}\n\nexport class Discipline extends Record({\n id: \"\",\n name: \"\",\n school_id: \"\",\n created_at: \"\",\n description: \"\",\n image_path: null,\n}) {}\n\nexport class Subject extends Record({\n id: \"\",\n name: \"\",\n color: \"\",\n school_id: \"\",\n discipline_id: \"\",\n image_path: null,\n description: \"\",\n created_at: \"\",\n}) {}\n\nexport class Course extends Record({\n id: \"\",\n name: \"\",\n weight: 0.0,\n image_path: null,\n description: \"\",\n is_published: false,\n term_id: \"\",\n level_id: \"\",\n subject_id: \"\",\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class Topic extends Record({\n id: \"\",\n name: \"\",\n number: 0,\n description: \"\",\n course_id: \"\",\n school_id: \"\",\n subject_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class Learner extends Record({\n id: \"\",\n last_name: \"\",\n middle_name: \"\",\n first_name: \"\",\n term_id: \"\",\n classroom_id: \"\",\n school_id: \"\",\n image_path: null,\n student_id: \"\",\n created_at: \"\",\n}){\n get name() {\n return `${this.first_name} ${this.last_name}`;\n }\n\n get names() {\n return `${this.first_name} ${this.last_name}`;\n }\n\n get fullnames() {\n return `${this.first_name} ${this.middle_name} ${this.last_name}`;\n }\n}\n\nexport class Request extends Record({\n id: \"\",\n user_id: \"\",\n school_id: \"\",\n created_at: \"\",\n approved_at: \"\",\n}) {}\n\nexport class Cycle extends Record({\n id: \"\",\n name: \"\",\n start_date: \"\",\n end_date: \"\",\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class Term extends Record({\n id: \"\",\n name: \"\",\n is_active: false,\n start_date: \"\",\n stop_date: \"\",\n capacity: 0,\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class Session extends Record({\n id: \"\",\n name: \"\",\n end_at: \"\",\n start_at: \"\",\n classroom_id: \"\",\n lesson_id: \"\",\n school_id: \"\",\n user_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class Lecture extends Record({\n id: \"\",\n name: \"\",\n end_at: \"\",\n user_id: \"\",\n term_id: \"\",\n start_at: \"\",\n classroom_id: \"\",\n topic_id: \"\",\n course_id: \"\",\n lesson_id: \"\",\n school_id: \"\",\n subject_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class Instructor extends Record({\n id: \"\",\n level: 9999999,\n term_id: \"\",\n user_id: \"\",\n classroom_id: \"\",\n level_id: \"\",\n member_id: \"\",\n course_id: \"\",\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class Membership extends Record({\n id: \"\",\n user_id: \"\",\n role_id: \"\",\n suspended: false,\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class Lesson extends Record({\n id: \"\",\n name: \"\",\n number: 0,\n user_id: \"\",\n published: -1,\n max_score: 0,\n image_path: null,\n description: \"\",\n topic_id: \"\",\n school_id: \"\",\n created_at: \"\",\n}) {\n\n get is_approved() {\n return this.published === 1;\n }\n\n get is_gradable() {\n return this.max_score > 0;\n }\n\n get is_published() {\n return this.published === 1;\n }\n \n get is_pending() {\n return this.published === 0;\n }\n\n get is_draft() {\n return this.published === -1;\n }\n\n is_author(user_id?: string) {\n return this.user_id === user_id;\n }\n}\n\nexport class Member extends Record({\n id: \"\",\n user_id: \"\",\n role_id: \"\",\n metadata: {},\n notes: \"\",\n school_id: \"\",\n created_at: \"\",\n}) {\n is_user(user_id?: string) {\n return this.user_id === user_id;\n }\n}\n\nexport class Level extends Record({\n id: \"\",\n name: \"\",\n level: 0,\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class Classroom extends Record({\n id: \"\",\n name: \"\",\n capacity: 0,\n term_id: \"\",\n level_id: \"\",\n description: \"\",\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class Role extends Record({\n id: \"\",\n name: \"\",\n type: 0,\n color: \"\",\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class Permission extends Record({\n id: \"\",\n caps: [],\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class Educator extends Record({\n id: \"\",\n caps: [],\n user: {},\n course: {},\n school: {},\n user_id: \"\",\n member_id: \"\",\n classroom_id: \"\",\n course_id: \"\",\n school_id: \"\",\n created_at: \"\",\n}) {}\n\nexport class Student extends Record({\n id: \"\",\n image_path: null,\n dob: \"\",\n data: {},\n last_name: \"\",\n first_name: \"\",\n middle_name: \"\",\n classroom_id: \"\",\n school_id: \"\",\n created_at: \"\",\n is_archived: true,\n is_suspended: true,\n}) {\n\n get name() {\n return `${this.first_name} ${this.last_name}`;\n }\n\n get names() {\n return `${this.first_name} ${this.last_name}`;\n }\n\n get fullnames() {\n return `${this.first_name} ${this.middle_name} ${this.last_name}`;\n }\n}\n\nexport class Result extends Record({\n id: \"\",\n score: 0,\n notes: \"\",\n user_id: \"\",\n school_id: \"\",\n session_id: \"\",\n learner_id: \"\",\n created_at: \"\",\n}) {\n \n}\n\nexport class MySchedule extends Record({\n id: \"\",\n name: \"\",\n classroom_id: \"\",\n user_id: \"\",\n lesson_id: \"\",\n school_id: \"\",\n start_at: \"\",\n end_at: \"\",\n created_at: \"\",\n topic_id: \"\",\n course_id: \"\",\n member_id: \"\",\n subject_id: \"\",\n}) {}\n\n","import { Record } from 'immutable';\n\nexport class Session extends Record({\n access_token: \"\",\n token_type: \"\",\n expires_in: 0,\n expires_at: 0,\n user_id: \"\",\n refresh_token: \"\",\n is_anonymous: true\n}) {\n reset() {\n return new Session({});\n }\n\n get is_valid() {\n return !this.is_anonymous && Boolean(this.access_token.trim()) && Boolean(this.refresh_token.trim()) && Boolean(this.user_id.trim());\n }\n}\n\n","import { Record } from 'immutable';\nexport * as Account from \"./account\";\nexport * as Campus from \"./campus\";\nexport * as Auth from \"./auth\";\n\nexport class Country extends Record({\n id: \"\",\n name: \"\",\n isdn: \"\",\n icon: \"\",\n}) {}\n\n","import { Record } from \"immutable\";\nimport * as Actions from \"../actions/app\";\nimport { CampusRecord } from \"../records\";\n\nexport const state = new CampusRecord({});\n\nexport const reducers = {\n [Actions.APP_INIT]: (app: CampusRecord, payload: Actions.InitAction) => {\n return app;\n },\n};\n\nexport default { state, reducers, CampusRecord };\n","import { Record } from \"immutable\";\nimport { fork } from \"redux-saga/effects\";\n\nconst INIT = \"\";\n\nconst watch = ({ effect, type, handle }: Store.IHandler) =>\n function* watcher() {\n yield effect(type, handle);\n };\n\n\nexport function forkhandles(handles: Store.IHandler[]) {\n const watchers = handles.map(watch);\n return [...watchers].map(fork);\n}\n\nexport function composeReducer(\n handlers: Store.IReducerMap,\n defaultState: T\n): (state: T, action: Store.Action) => T {\n type ActionType = keyof typeof handlers;\n\n const actions: ActionType[] = Object.keys(handlers);\n\n if (actions.includes(INIT)) {\n return (state: T = defaultState, action: Store.Action): T => {\n if (actions.includes(action.type)) {\n return handlers[action.type](state, action);\n } else {\n return state;\n }\n };\n } else {\n return (state: T = defaultState, action: Store.Action): T => {\n const { type } = action;\n\n if (type === INIT) {\n return defaultState;\n } else if (actions.includes(type)) {\n return handlers[type](state, action);\n } else {\n return state;\n }\n };\n }\n}\n\n/** \n * @todo\n * abstract out the Root creation process reducer\ntype IReducer = (state: T, action: any) => T\n\ntype IReducers = {[key: string]: IReducer} & object\n\nexport function createRootReducer>(root: Root, reducers: IReducers){\n\n type Partition = keyof IReducers;\n\n const stores = Object.keys(reducers as any) as Partition[];\n\n function validatePartition(state: Record, value: Partition) {\n if (!state.has(value as any)) {\n throw Error(\"Unkown store partition \" + (value as any));\n }\n if (!(value in (reducers as any))) {\n throw Error(\"No reducers defined for store partition \" + (value as any));\n }\n }\n\n return function rootReducer(state = root, action: Store.Action) {\n return state.withMutations((state) => {\n stores.forEach((partition: Partition) => {\n validatePartition(state, partition);\n const current = state.get(partition)!;\n const reducer = reducers[partition];\n const next = reducer(current as any, action as Store.Action);\n state.set(partition, next);\n });\n });\n }\n\n}\n*/","import { Map} from 'immutable';\nimport { createAction } from '../action';\n\nconst reducers = {\n\n clear(map: Map): Map{\n return Map();\n },\n\n drop(map: Map, key: K) {\n return map.delete(key); \n },\n\n set(map: Map, payload: {[field: string|number]: V}) {\n if (typeof payload === \"object\") {\n return Object.entries(payload).reduce((map, [key, value]) => {\n if(typeof value == \"function\") {\n return map.update(key as any, value as any); \n } else {\n return map.set(key as any, value); \n }\n }, map);\n }\n return map;\n },\n\n fill(map: Map, payload: Object): Map {\n return map.merge(payload as any);\n }\n \n}\n\nconst handlers = Object.keys(reducers);\n\n\nexport default function compose(name: string){\n\n class Op {\n __parts: string[];\n constructor(parts: string[]=[]) {\n this.__parts = parts;\n return new Proxy(this, (this as any));\n }\n get(_lhs: any, type: string) {\n let val = (this as any)[type];\n if(val) {\n return val;\n }\n if(typeof type == \"string\") {\n if(this.__parts.length == 0) {\n if(type === name) {\n return new Op([...this.__parts, type])\n }\n throw new Error(`Invalid table ${type}`);\n }\n if(this.__parts.length == 1) {\n if(type.match(handlers.join(\"|\"))) {\n return (new Op([...this.__parts, type])).toString();\n }\n throw new Error(`Invalid operation ${type}`);\n }\n }\n }\n\n toArray(){\n return this.__parts;\n }\n\n toString() {\n return `@map/${this.__parts.join(\"/\")}`;\n }\n }\n\n const builder = new Op();\n\n function dispatch(state: Map, action: any, handle: string): Map {\n if(handle === \"clear\") {\n return reducers[handle](state);\n }\n if(handle === \"fill\" || handle === \"set\") {\n return reducers.set(state, action.payload);\n }\n if(handle === \"drop\") {\n return reducers[handle](state, action.payload);\n }\n return state;\n }\n\n return {\n get op(){\n return new Op();\n },\n get root(){\n return Map();\n },\n actions: {\n fill(payload: Object, meta={}) {\n const type = (builder as any)[name].set.toString();\n return createAction(type, payload, {...meta});\n },\n set(key: string, value: any, meta={}) {\n const type = (builder as any)[name].set.toString();\n return createAction(type, {[key]: value}, {...meta});\n },\n drop(key: string, meta={}) {\n const type = (builder as any)[name].drop.toString();\n return createAction(type, key, {...meta});\n },\n clear() {\n const type = (builder as any)[name].clear.toString();\n return createAction(type, {}, {});\n }\n },\n reducers: handlers.reduce((acc, handle) => {\n const handler = (map: Map, action: any) => {\n return dispatch(map, action, handle);\n }\n return {...acc, [`@map/${name}/${handle}`]: handler};\n\n }, {} as {[key: string]: (state: Map, action: any) => Map})\n\n }\n \n}\n\n\n","import { Record } from 'immutable';\nimport { createAction } from '../action';\n\ninterface BaseClass {\n [key: string]: any;\n}\n\nconst reducers = {\n\n reset(map: Record): Record{\n return map;\n },\n\n set(map: Record, payload: Object) {\n if (typeof payload === \"object\") {\n return Object.entries(payload).reduce((map, [key, value]) => {\n if(typeof value == \"function\") {\n return map.update(key as any, value); \n }\n return map.set(key as any, value); \n }, map);\n }\n return map;\n },\n\n fill(map: Record, payload: Object): Record {\n return map.merge(payload as any);\n }\n \n}\n\nconst handlers = Object.keys(reducers);\n\n\nexport default function compose Record, U=ReturnType[\"toObject\"]>>(name: string, rclass: T){\n type Root = InstanceType\n let sample = new (rclass as any)({}) as Root\n class Op {\n __parts: string[];\n constructor(parts: string[]=[]) {\n this.__parts = parts;\n return new Proxy(this, (this as any));\n }\n get(_lhs: any, type: string) {\n let val = (this as any)[type];\n if(val) {\n return val;\n }\n if(typeof type == \"string\") {\n if(this.__parts.length == 0) {\n if(type === name) {\n return new Op([...this.__parts, type])\n }\n throw new Error(`Invalid record ${type}`);\n }\n if(this.__parts.length == 1) {\n if(type.match(handlers.join(\"|\"))) {\n return (new Op([...this.__parts, type])).toString();\n }\n throw new Error(`Invalid operation ${type}`);\n }\n }\n }\n\n toArray(){\n return this.__parts;\n }\n\n toString() {\n return `@record/${this.__parts.join(\"/\")}`;\n }\n }\n\n const builder = new Op();\n\n function dispatch(state: Root, action: any, handle: string): Root {\n if(handle === \"reset\") {\n return sample;\n }\n if(handle === \"fill\" || handle === \"set\") {\n return reducers.set(state as any, action.payload) as Root;\n }\n return state;\n }\n\n return {\n get op(){\n return new Op();\n },\n get root(): Root {\n return new (rclass as any)({})\n },\n actions: {\n fill(payload: Partial, meta={}) {\n const type = (builder as any)[name].set.toString();\n return createAction(type, payload, {...meta});\n },\n set(key: keyof U, value: V, meta={}) {\n const type = (builder as any)[name].set.toString();\n return createAction(type, {[key]: value}, {...meta});\n },\n reset() {\n const type = (builder as any)[name].reset.toString();\n return createAction(type, {}, {});\n }\n },\n reducers: handlers.reduce((acc, handle) => {\n const handler = (map: Root, action: any) => {\n return dispatch(map, action, handle) as Root;\n }\n return {...acc, [`@record/${name}/${handle}`]: handler};\n\n }, {} as {[key: string]: (state: Root, action: any) => Root})\n\n }\n \n}\n\n\n\n","import { Record, OrderedMap, isImmutable } from 'immutable';\nimport { createAction, createIOAction } from '../action';\n\n\nexport type BaseTableProps = {\n row: T;\n name: string;\n rows: OrderedMap;\n}\n\nexport interface BaseTableTableMethods {\n put(key: string, value: T): Table\n clear() : Table \n\n patch(key: string, patches: T): Table\n\n drop(key: string): Table \n find(key: string, def?: T): T | undefined \n findOrDefault(key: string, def?: T): T\n}\n\nexport type BaseTable = BaseTableProps & BaseTableTableMethods\n\nexport type Table = Record> & BaseTable\n\nexport type TablesOf = Record<{[K in keyof T]: Table infer R ? R : never>}>\n\nexport function create>(row: T, name: string): ReturnType>> {\n type Row = Record;\n const schema = {\n row: row,\n name: name,\n rows: OrderedMap(),\n }\n\n const defaultRow: Row = new (row as any)({});\n\n class TableDef extends Record(schema, name) implements BaseTableTableMethods{\n\n put(key: string, value: Object) {\n // @ts-ignore\n return this.updateIn([\"rows\", key], old => old ? old.merge(value) : TableDef.make(value));\n }\n\n clear() {\n console.log(\"Clearing table\", name);\n return this.set(\"rows\", OrderedMap())\n }\n\n patch(key: string, patches: Object){\n // @ts-ignore\n if(this.rows.has(key)) {\n // @ts-ignore\n return this.updateIn([\"rows\", key], (value: any) => value.merge(patches));\n }\n return this;\n }\n\n drop(key: string){\n // @ts-ignore\n return this.updateIn([\"rows\"], (rows) => rows.delete(key));\n }\n\n find(key: string, def?: Row){\n return this.rows.get(key, def);\n }\n\n findOrDefault(key: string, def?: Row){\n return this.find(key, def) ?? defaultRow;\n }\n\n static make(data: Object): Row {\n let raw : any;\n if(isImmutable(data)) {\n raw = data.toJSON();\n } else {\n raw = data;\n }\n return new (row as any)(raw);\n }\n\n }\n return TableDef as any;\n}\n\nconst reducers = {\n\n cleared(table: Table) {\n return table.clear();\n },\n\n loaded(table: Table, id: string, payload: any) {\n if(Array.isArray(payload) && (id === undefined || id === null)) {\n return payload.reduce((table, row) => table.put(row.id, row), table);\n }\n if(id == undefined || id == null) {\n throw new Error(\"Invalid id\");\n }\n return table.put(id, payload);\n },\n\n dropped(table: Table, id: string|string[]) {\n if(Array.isArray(id)) {\n return id.reduce((table, id) => {\n return table.drop(id);\n }, table);\n }\n if(typeof id === \"function\") {\n const rows = (table as unknown as BaseTableProps).rows.filter(id);\n return table.set(\"rows\", rows);\n }\n if(typeof id === \"object\" && (id as any).id) {\n return table.drop((id as any).id);\n }\n if(typeof id === \"string\") {\n return table.drop(id);\n }\n throw new Error(\"Invalid id\");\n },\n\n updated(table: Table, id: string, payload: any) {\n if(table.rows.has(id)) {\n if(typeof payload === \"function\") {\n let row = table.find(id);\n let nextval = payload(row);\n if(nextval instanceof (table as any).row) {\n return table.setIn([\"rows\", id], nextval);\n }\n throw new Error(`Invalid return value from ${payload} Must return a new ${table.row} object`);\n } \n return table.updateIn([\"rows\", id], (row: any) => row.merge(payload));\n }\n return table;\n },\n\n set(table: Table, id: string, field: string|number, payload: any) {\n if((table as any).rows.has(id) && (table as any).rows.get(id).has(field)) {\n\n // Need to create a swap variable to avoid\n // having the value reference iself as\n // the payload if it is a function\n let value = payload;\n if(typeof payload !== \"function\") {\n value = () => payload; \n }\n return table.updateIn([\"rows\", id, field], value);\n }\n return table;\n }\n \n}\n\nconst handlers = Object.keys(reducers);\n\n\nexport default function compose(tables: Schema) {\n\n let tablenames = Object.keys(tables);\n\n const layout = Object.entries(tables).reduce((acc, [name, row]) => {\n const table = create(row, name);\n acc[name] = new table({});\n return acc;\n }, {} as {[key: string]: any});\n\n class Tables extends Record(layout, \"tables\") {}\n\n class Op {\n __parts: string[];\n constructor(parts: string[]=[]) {\n this.__parts = parts;\n return new Proxy(this, (this as any));\n }\n get(_lhs: any, type: string) {\n let val = (this as any)[type];\n if(val) {\n return val;\n }\n if(typeof type == \"string\") {\n if(this.__parts.length == 0) {\n if(tablenames.includes(type)) {\n return new Op([...this.__parts, type])\n }\n throw new Error(`Invalid table ${type}`);\n }\n if(this.__parts.length == 1) {\n return (new Op([...this.__parts, type])).toString();\n }\n }\n }\n\n toArray(){\n return this.__parts;\n }\n\n toString() {\n return `@table/${this.__parts.join(\"/\")}`;\n }\n }\n\n const builder = new Op();\n\n function dispatch(state: Table, action: any, handle: string): Table {\n const { metadata } = action;\n if(metadata) {\n if(handle === \"cleared\") {\n return reducers[handle](state);\n }\n if(handle === \"set\" && metadata.field && metadata.id) {\n let { field, id } = metadata;\n return reducers[handle](state, id, field, action.payload);\n }\n if(handle === \"updated\" && metadata.id) {\n let { id } = metadata;\n return reducers[handle](state, id, action.payload);\n }\n if(handle === \"dropped\" && metadata.id) {\n return reducers[handle](state, metadata.id ?? action.payload);\n }\n if(handle === \"loaded\" && metadata.id) {\n let { id } = metadata;\n return reducers[handle](state, id, action.payload);\n }\n }\n if(handle === \"loaded\" && (action.payload.id || Array.isArray(action.payload)) ) {\n if(Array.isArray(action.payload)) {\n return action.payload.reduce((ntable: any, row: any) => {\n if(row && row.id) {\n return reducers[handle](ntable, row.id, row);\n }\n return ntable;\n }, state);\n }\n return reducers[handle](state, action.payload.id, action.payload);\n }\n return state;\n }\n\n return {\n get op(){\n return new Op();\n },\n get root(): TablesOf {\n return new Tables({}) as any;\n },\n get tables() {\n return tablenames;\n },\n actions: {\n set(table: string, id: string, field: string, payload: any, meta={}) {\n const action = (builder as any)[table].set.toString();\n return createAction(action, payload, {...meta, field, table, action, id});\n },\n loaded(table: string, payload: any, meta={}) {\n const action = (builder as any)[table].loaded.toString();\n return createAction(action, payload, {...meta, action, table});\n },\n updated(table: string, id: string, payload: any, meta={}) {\n const action = (builder as any)[table].updated.toString();\n return createAction(action, payload, {...meta, table, action, id});\n },\n dropped(table: string, id: string, meta={}) {\n const action = (builder as any)[table].dropped.toString();\n return createAction(action, {id}, {...meta, table, action, id});\n },\n cleared(table: string) {\n const action = (builder as any)[table].cleared.toString();\n return createAction(action, {}, {table});\n },\n\n read(table: string, params: any, meta={}) {\n const action = (builder as any)[table].read.toString();\n return createIOAction(action, params, {...meta, table, action});\n },\n create(table: string, payload: any, meta={}) {\n const action = (builder as any)[table].create.toString();\n return createIOAction(action, payload, {...meta, table, action});\n },\n load(table: string, params: any, meta={}) {\n const action = (builder as any)[table].load.toString();\n return createIOAction(action, params, {...meta, table, action});\n },\n update(table: string, id: any, payload: any, meta={}) {\n const action = (builder as any)[table].update.toString();\n return createIOAction(action, {id, payload}, {...meta, table, action});\n },\n drop(table: string, id: any, meta={}) {\n const action = (builder as any)[table].drop.toString();\n return createIOAction(action, {id}, {...meta, table, action});\n },\n },\n reducers: tablenames.reduce((acc, name) => {\n\n return handlers.reduce( (acc, handle) => {\n const handler = (tables: TablesOf, action: any) => {\n const table = dispatch((tables as Tables).get(name)!, action, handle);\n return (tables as Tables).set(name, table) as TablesOf;\n }\n return {...acc, [`@table/${name}/${handle}`]: handler};\n }, acc);\n\n }, {} as {[key: string]: (state: TablesOf, action: any) => TablesOf})\n\n }\n \n}\n\n\n\n\n","import { Country, Campus, Account } from \"@campus/records\";\n\nconst tables = {\n countries: Country,\n classrooms: Campus.Classroom,\n disciplines: Campus.Discipline,\n subjects: Campus.Subject,\n levels: Campus.Level,\n students: Campus.Student,\n results: Campus.Result,\n instructors: Campus.Instructor,\n attendances: Campus.Attendance,\n roles: Campus.Role,\n permissions: Campus.Permission,\n educators: Campus.Educator,\n schools: Campus.School,\n courses: Campus.Course,\n topics: Campus.Topic,\n learners: Campus.Learner,\n lessons: Campus.Lesson,\n lectures: Campus.Lecture,\n terms: Campus.Term,\n contacts: Campus.Contact,\n sessions: Campus.Session,\n members: Campus.Member,\n memberships: Campus.Membership,\n users: Account.User,\n requests: Campus.Request,\n myschedules: Campus.MySchedule,\n}\nexport default tables\n\n","import { Record } from \"immutable\";\nimport { Auth } from \"@campus/records\";\nimport app from \"./app\";\nimport { composeReducer } from \"../utils\";\nimport mapcompose from \"./map\";\nimport listcompose from \"./list\";\nimport recordcompose from \"./record\";\nimport tablescompose from \"./tables\";\nimport tablesdef from \"../tables\";\n\n\nconst INIT = \"@@INIT\";\n\n//const lists = listcompose(\"list\");\nexport const globals = mapcompose(\"globals\");\nexport const campus = recordcompose(\"records\", app.CampusRecord);\nexport const session = recordcompose(\"session\", Auth.Session);\n\n// Compose tables\nexport const tables = tablescompose(tablesdef)\n\nconst RootStates = {\n app: app.state,\n campus: campus.root,\n tables: tables.root,\n globals: globals.root,\n session: session.root,\n};\n\nexport class RootStateRecord extends Record(RootStates, \"root\") { }\n\nexport const state = new RootStateRecord({});\n\nexport type Root = InstanceType;\n\nconst reducers = {\n app: composeReducer(app.reducers, app.state),\n campus: composeReducer(campus.reducers, campus.root),\n tables: composeReducer(tables.reducers, tables.root),\n globals: composeReducer(globals.reducers, globals.root),\n session: composeReducer(session.reducers, session.root),\n};\n\nexport type Store = keyof typeof reducers;\n\nconst stores = Object.keys(reducers) as Store[];\n\nfunction validatePartition(state: Root, value: Store) {\n if (!state.has(value)) {\n throw Error(\"Unkown store partition \" + value);\n }\n if (!(value in reducers)) {\n throw Error(\"No reducers defined for store partition \" + value);\n }\n}\n\nfunction reducer(root: Root=state, action: Store.Action){\n return root.withMutations((root) => {\n stores.forEach((partition: Store) => {\n validatePartition(root, partition);\n const current = root.get(partition)!;\n const reducer = reducers[partition];\n const next = reducer(current as any, action as Store.Action);\n root.set(partition, next);\n });\n });\n}\n\nexport default { state, reducer }\n","import { put, takeEvery, select } from \"redux-saga/effects\";\nimport * as Actions from \"../actions/app\";\n\nconst SIGNED_IN = \"SIGNED_IN\";\n\nfunction* init(payload: any, ctx: SagaContext){\n ctx.client.auth.onAuthStateChange((event: string, session: any) => {\n if(event === SIGNED_IN){\n // fill store root session\n ctx.dispatch({type: \"@@SIGNED_IN\", payload: session});\n }\n });\n}\n\nexport default [\n { effect: takeEvery, type: Actions.APP_INIT, handler: init },\n];\n","import { put, takeEvery, select } from \"redux-saga/effects\";\nimport { session} from \"../reducers\"; \nimport * as Actions from \"../actions\";\n\nconst SIGNED_IN = \"SIGNED_IN\";\n\nfunction* init(action: Actions.Auth.LoginAction, ctx: SagaContext){\n ctx.client.auth.onAuthStateChange((event: string, sess: any) => {\n if(event === SIGNED_IN){\n let { user } = sess;\n let extra = {user_id: user.id, is_anonymous: user.is_anonymous, email: user.email}\n let payload = {...sess, ...extra}\n ctx.dispatch(session.actions.fill(payload));\n }\n });\n}\n\nfunction* login(action: Actions.Auth.LoginAction, ctx: SagaContext){\n const username = action.payload.username\n const password = action.payload.password\n const email = `${username}@levelcampus.com`\n try{\n const { data, error} = yield ctx.client.auth.signInWithPassword({email, password})\n if( error){\n throw error\n }\n }catch(e: any){\n action.resolve.error(e)\n }\n\n}\n\nfunction* logout(action: Actions.Auth.LogoutAction, ctx: SagaContext){\n try{\n yield put(session.actions.reset());\n const { data, error} = yield ctx.client.auth.signOut()\n if( error){\n throw error\n }\n }catch(e: any){\n action.resolve.error(e)\n }\n\n}\n\nexport default [\n { effect: takeEvery, type: Actions.App.APP_INIT, handler: init},\n { effect: takeEvery, type: Actions.Auth.AUTH_LOGIN, handler: login},\n { effect: takeEvery, type: Actions.Auth.AUTH_LOGOUT, handler: logout},\n];\n\n","import { put, takeEvery, select } from \"redux-saga/effects\";\nimport * as Actions from \"../actions/app\";\nimport { tables } from \"../reducers\"\n\nfunction* read(action: any, ctx: SagaContext){\n try {\n let { data, error } = yield ctx.client.tables[action.metadata.table].get(action.payload);\n //tables.actions[action.metadata.action as keyof typeof tables.actions]\n if (error){\n throw error\n }\n yield action.resolve.success(data);\n yield put(tables.actions.loaded(action.metadata.table, data, {id: data.id}));\n } catch (e: any){\n console.error(e);\n yield action.resolve.error(e);\n }\n}\n\nfunction* load(action: any, ctx: SagaContext){\n try {\n let { data, error } = yield ctx.client.tables[action.metadata.table].list(action.payload);\n //tables.actions[action.metadata.action as keyof typeof tables.actions]\n if (error){\n throw error\n }\n yield action.resolve.success(data);\n yield put(tables.actions.loaded(action.metadata.table, data));\n } catch (e: any){\n console.error(e);\n yield action.resolve.error(e);\n }\n}\n\nfunction* create(action: any, ctx: SagaContext){\n try {\n let { data, error } = yield ctx.client.tables[action.metadata.table].create(action.payload);\n //tables.actions[action.metadata.action as keyof typeof tables.actions]\n if (error){\n throw error\n }\n yield action.resolve.success(data);\n yield put(tables.actions.updated(action.metadata.table, data.id, data));\n } catch (e: any){\n console.error(e);\n yield action.resolve.error(e);\n }\n}\n\nfunction* update(action: any, ctx: SagaContext){\n try {\n let { data, error } = yield ctx.client.tables[action.metadata.table].update(action.payload);\n //tables.actions[action.metadata.action as keyof typeof tables.actions]\n if (error){\n throw error\n }\n yield action.resolve.success(data);\n yield put(tables.actions.updated(action.metadata.table, data.id, data));\n } catch (e: any){\n console.error(e);\n yield action.resolve.error(e);\n }\n}\n\nfunction* trash(action: any, ctx: SagaContext){\n try {\n let { data, error } = yield ctx.client.tables[action.metadata.table].delete(action.payload);\n //tables.actions[action.metadata.action as keyof typeof tables.actions]\n if (error){\n throw error\n }\n yield action.resolve.success(data);\n yield put(tables.actions.dropped(action.metadata.table, action.payload));\n } catch (e: any){\n console.error(e);\n yield action.resolve.error(e);\n }\n}\n\nconst creates = tables.tables.map((table) => {\n return {\n effect: takeEvery,\n type: (tables.op as any)[table].create.toString(),\n handler: create\n }\n});\n\nconst reads = tables.tables.map((table) => {\n return {\n effect: takeEvery,\n type: (tables.op as any)[table].read.toString(),\n handler: read\n }\n});\n\nconst loads = tables.tables.map((table) => {\n return {\n effect: takeEvery,\n type: (tables.op as any)[table].load.toString(),\n handler: load\n }\n});\n\nconst updates = tables.tables.map((table) => {\n return {\n effect: takeEvery,\n type: (tables.op as any)[table].update.toString(),\n handler: update\n }\n});\n\nconst trashes = tables.tables.map((table) => {\n return {\n effect: takeEvery,\n type: (tables.op as any)[table].delete.toString(),\n handler: trash\n }\n});\n\nexport default [\n ...creates,\n ...reads,\n ...loads,\n ...updates,\n ...trashes,\n];\n\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","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}","// 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// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + {\"175\":\"393e8466\",\"367\":\"f57a73fd\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"@campus/webapp:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_campus_webapp\"] = self[\"webpackChunk_campus_webapp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: 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 type LoaderFunction = {\n (args: LoaderFunctionArgs):\n | Promise\n | DataFunctionValue;\n} & { hydrate?: boolean };\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(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction 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// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n 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 getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n}\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_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n initialized = initialMatches.every(\n (m) =>\n m.route.loader &&\n m.route.loader.hydrate !== true &&\n ((loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined))\n );\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let 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 opts && opts.initialHydration === true,\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 future.v7_relativeSplatPath\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 initialHydration?: 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 future.v7_partialHydration && initialHydration === true,\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 we have partialHydration enabled, then don't update the state for the\n // initial data load since iot's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n 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 future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\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 // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(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\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n 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 future.v7_relativeSplatPath\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 // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(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 future.v7_relativeSplatPath\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 future.v7_relativeSplatPath\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 future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n 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 future.v7_relativeSplatPath,\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 future.v7_relativeSplatPath,\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 v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n 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 let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n 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:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n 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 v7_relativeSplatPath: boolean,\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 v7_relativeSplatPath\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\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (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 hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n 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 matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

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

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

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a