{"version":3,"file":"static/js/main.657cc8f0.js","mappings":"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","sources":["../node_modules/@react-native/normalize-color/index.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/css-in-js-utils/es/assignStyle.js","../node_modules/css-in-js-utils/es/camelCaseProperty.js","../node_modules/css-in-js-utils/es/hyphenateProperty.js","../node_modules/css-in-js-utils/es/cssifyDeclaration.js","../node_modules/css-in-js-utils/es/cssifyObject.js","../node_modules/css-in-js-utils/es/isPrefixedProperty.js","../node_modules/css-in-js-utils/es/isPrefixedValue.js","../node_modules/css-in-js-utils/es/isUnitlessProperty.js","../node_modules/css-in-js-utils/es/unprefixProperty.js","../node_modules/css-in-js-utils/es/normalizeProperty.js","../node_modules/css-in-js-utils/es/resolveArrayValue.js","../node_modules/css-in-js-utils/es/unprefixValue.js","../node_modules/css-in-js-utils/lib/hyphenateProperty.js","../node_modules/css-in-js-utils/lib/isPrefixedValue.js","../node_modules/fbjs/lib/emptyFunction.js","../node_modules/fbjs/lib/invariant.js","../node_modules/fbjs/lib/warning.js","../node_modules/hyphenate-style-name/index.js","../node_modules/inline-style-prefixer/lib/createPrefixer.js","../node_modules/inline-style-prefixer/lib/plugins/backgroundClip.js","../node_modules/inline-style-prefixer/lib/plugins/crossFade.js","../node_modules/inline-style-prefixer/lib/plugins/cursor.js","../node_modules/inline-style-prefixer/lib/plugins/filter.js","../node_modules/inline-style-prefixer/lib/plugins/imageSet.js","../node_modules/inline-style-prefixer/lib/plugins/logical.js","../node_modules/inline-style-prefixer/lib/plugins/position.js","../node_modules/inline-style-prefixer/lib/plugins/sizing.js","../node_modules/inline-style-prefixer/lib/plugins/transition.js","../node_modules/inline-style-prefixer/lib/utils/addNewValuesOnly.js","../node_modules/inline-style-prefixer/lib/utils/capitalizeString.js","../node_modules/inline-style-prefixer/lib/utils/isObject.js","../node_modules/inline-style-prefixer/lib/utils/prefixProperty.js","../node_modules/inline-style-prefixer/lib/utils/prefixValue.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/nullthrows/nullthrows.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-native-web/dist/vendor/react-native/Utilities/clamp.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/styleq/dist/styleq.js","../node_modules/styleq/dist/transform-localize-style.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAriaRole.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAccessibilityComponent.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/index.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/isDisabled.js","../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/react-native-web/dist/exports/StyleSheet/compiler/unitlessNumbers.js","../node_modules/react-native-web/dist/modules/isWebColor/index.js","../node_modules/react-native-web/dist/exports/processColor/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/compiler/normalizeColor.js","../node_modules/react-native-web/dist/exports/StyleSheet/compiler/normalizeValueWithProperty.js","../node_modules/react-native-web/dist/modules/canUseDom/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/compiler/createReactDOMStyle.js","../node_modules/react-native-web/dist/exports/StyleSheet/compiler/hash.js","../node_modules/react-native-web/dist/exports/StyleSheet/compiler/hyphenateStyleName.js","../node_modules/react-native-web/dist/modules/prefixStyles/static.js","../node_modules/react-native-web/dist/modules/prefixStyles/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/compiler/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/dom/createCSSStyleSheet.js","../node_modules/react-native-web/dist/exports/StyleSheet/dom/createOrderedCSSStyleSheet.js","../node_modules/react-native-web/dist/exports/StyleSheet/dom/index.js","../node_modules/react-native-web/dist/modules/warnOnce/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/preprocess.js","../node_modules/react-native-web/dist/exports/StyleSheet/index.js","../node_modules/react-native-web/dist/modules/createDOMProps/index.js","../node_modules/react-native-web/dist/modules/useLocale/isLocaleRTL.js","../node_modules/react-native-web/dist/modules/useLocale/index.js","../node_modules/react-native-web/dist/exports/createElement/index.js","../node_modules/react-native-web/dist/modules/forwardedProps/index.js","../node_modules/react-native-web/dist/modules/pick/index.js","../node_modules/react-native-web/dist/modules/useLayoutEffect/index.js","../node_modules/react-native-web/dist/modules/unitlessNumbers/index.js","../node_modules/react-native-web/dist/modules/setValueForStyles/dangerousStyleValue.js","../node_modules/react-native-web/dist/modules/setValueForStyles/index.js","../node_modules/react-native-web/dist/exports/UIManager/index.js","../node_modules/react-native-web/dist/modules/useElementLayout/index.js","../node_modules/react-native-web/dist/modules/mergeRefs/index.js","../node_modules/react-native-web/dist/modules/useMergeRefs/index.js","../node_modules/react-native-web/dist/modules/useStable/index.js","../node_modules/react-native-web/dist/modules/usePlatformMethods/index.js","../node_modules/react-native-web/dist/modules/getBoundingClientRect/index.js","../node_modules/react-native-web/dist/modules/useResponderEvents/createResponderEvent.js","../node_modules/react-native-web/dist/modules/useResponderEvents/ResponderEventTypes.js","../node_modules/react-native-web/dist/modules/useResponderEvents/utils.js","../node_modules/react-native-web/dist/modules/isSelectionValid/index.js","../node_modules/react-native-web/dist/modules/useResponderEvents/ResponderTouchHistoryStore.js","../node_modules/react-native-web/dist/modules/useResponderEvents/ResponderSystem.js","../node_modules/react-native-web/dist/modules/useResponderEvents/index.js","../node_modules/react-native-web/dist/exports/Text/TextAncestorContext.js","../node_modules/react-native-web/dist/exports/View/index.js","../node_modules/react-native-web/dist/exports/Dimensions/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-native-web/dist/modules/AssetRegistry/index.js","../node_modules/react-native-web/dist/modules/ImageLoader/index.js","../node_modules/react-native-web/dist/exports/PixelRatio/index.js","../node_modules/react-native-web/dist/exports/Image/index.js","../node_modules/react-native-web/dist/exports/ActivityIndicator/index.js","../node_modules/react-native-web/dist/vendor/react-native/deepDiffer/index.js","../node_modules/react-native-web/dist/exports/Platform/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/react-native-web/dist/exports/RefreshControl/index.js","../node_modules/react-native-web/dist/modules/TextInputState/index.js","../node_modules/react-native-web/dist/modules/dismissKeyboard/index.js","../node_modules/react-native-web/dist/exports/ScrollView/ScrollViewBase.js","../node_modules/react-native-web/dist/exports/ScrollView/index.js","../node_modules/react-native-web/dist/exports/InteractionManager/TaskQueue.js","../node_modules/react-native-web/dist/modules/requestIdleCallback/index.js","../node_modules/react-native-web/dist/exports/InteractionManager/index.js","../node_modules/react-native-web/dist/vendor/react-native/vendor/emitter/EventEmitter.js","../node_modules/react-native-web/dist/vendor/react-native/Batchinator/index.js","../node_modules/react-native-web/dist/vendor/react-native/infoLog/index.js","../node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/CellRenderMask.js","../node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/ChildListCollection.js","../node_modules/react-native-web/dist/vendor/react-native/FillRateHelper/index.js","../node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/StateSafePureComponent.js","../node_modules/react-native-web/dist/vendor/react-native/ViewabilityHelper/index.js","../node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/VirtualizedListContext.js","../node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js","../node_modules/react-native-web/dist/vendor/react-native/VirtualizeUtils/index.js","../node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/react-native-web/dist/vendor/react-native/FlatList/index.js","../node_modules/react-native-web/dist/exports/FlatList/index.js","../node_modules/react-native-web/dist/exports/Text/index.js","../node_modules/react-native-web/dist/modules/usePressEvents/PressResponder.js","../node_modules/react-native-web/dist/exports/TouchableOpacity/index.js","../node_modules/react-native-web/dist/modules/usePressEvents/index.js","HiddenButton.js","PictureFeed.js","../node_modules/react-native-web/dist/exports/useWindowDimensions/index.js","App.js","index.js"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * @noflow\n */\n\n/* eslint no-bitwise: 0 */\n\n'use strict';\n\nfunction normalizeColor(color) {\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n if (typeof color !== 'string') {\n return null;\n }\n\n const matchers = getMatchers();\n let match;\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n const colorFromKeyword = normalizeKeyword(color);\n if (colorFromKeyword != null) {\n return colorFromKeyword;\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.rgba.exec(color))) {\n // rgba(R G B / A) notation\n if (match[6] !== undefined) {\n return (\n ((parse255(match[6]) << 24) | // r\n (parse255(match[7]) << 16) | // g\n (parse255(match[8]) << 8) | // b\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // rgba(R, G, B, A) notation\n return (\n ((parse255(match[2]) << 24) | // r\n (parse255(match[3]) << 16) | // g\n (parse255(match[4]) << 8) | // b\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16,\n ) >>> 0\n );\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16,\n ) >>> 0\n );\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]), // l\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hsla.exec(color))) {\n // hsla(H S L / A) notation\n if (match[6] !== undefined) {\n return (\n (hslToRgb(\n parse360(match[6]), // h\n parsePercentage(match[7]), // s\n parsePercentage(match[8]), // l\n ) |\n parse1(match[9])) >>> // a\n 0\n );\n }\n\n // hsla(H, S, L, A) notation\n return (\n (hslToRgb(\n parse360(match[2]), // h\n parsePercentage(match[3]), // s\n parsePercentage(match[4]), // l\n ) |\n parse1(match[5])) >>> // a\n 0\n );\n }\n\n if ((match = matchers.hwb.exec(color))) {\n return (\n (hwbToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // w\n parsePercentage(match[3]), // b\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n (Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8)\n );\n}\n\nfunction hwbToRgb(h, w, b) {\n if (w + b >= 1) {\n const gray = Math.round((w * 255) / (w + b));\n\n return (gray << 24) | (gray << 16) | (gray << 8);\n }\n\n const red = hue2rgb(0, 1, h + 1 / 3) * (1 - w - b) + w;\n const green = hue2rgb(0, 1, h) * (1 - w - b) + w;\n const blue = hue2rgb(0, 1, h - 1 / 3) * (1 - w - b) + w;\n\n return (\n (Math.round(red * 255) << 24) |\n (Math.round(green * 255) << 16) |\n (Math.round(blue * 255) << 8)\n );\n}\n\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,?\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nfunction callWithSlashSeparator(...args) {\n return (\n '\\\\(\\\\s*(' +\n args.slice(0, args.length - 1).join(')\\\\s*,?\\\\s*(') +\n ')\\\\s*/\\\\s*(' +\n args[args.length - 1] +\n ')\\\\s*\\\\)'\n );\n}\n\nfunction commaSeparatedCall(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nlet cachedMatchers;\n\nfunction getMatchers() {\n if (cachedMatchers === undefined) {\n cachedMatchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp(\n 'rgba(' +\n commaSeparatedCall(NUMBER, NUMBER, NUMBER, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, NUMBER, NUMBER, NUMBER) +\n ')',\n ),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp(\n 'hsla(' +\n commaSeparatedCall(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n '|' +\n callWithSlashSeparator(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n ')',\n ),\n hwb: new RegExp('hwb' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n };\n }\n return cachedMatchers;\n}\n\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str) {\n const int = parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n const int = parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nfunction normalizeKeyword(name) {\n // prettier-ignore\n switch (name) {\n case 'transparent': return 0x00000000;\n // http://www.w3.org/TR/css3-color/#svg-color\n case 'aliceblue': return 0xf0f8ffff;\n case 'antiquewhite': return 0xfaebd7ff;\n case 'aqua': return 0x00ffffff;\n case 'aquamarine': return 0x7fffd4ff;\n case 'azure': return 0xf0ffffff;\n case 'beige': return 0xf5f5dcff;\n case 'bisque': return 0xffe4c4ff;\n case 'black': return 0x000000ff;\n case 'blanchedalmond': return 0xffebcdff;\n case 'blue': return 0x0000ffff;\n case 'blueviolet': return 0x8a2be2ff;\n case 'brown': return 0xa52a2aff;\n case 'burlywood': return 0xdeb887ff;\n case 'burntsienna': return 0xea7e5dff;\n case 'cadetblue': return 0x5f9ea0ff;\n case 'chartreuse': return 0x7fff00ff;\n case 'chocolate': return 0xd2691eff;\n case 'coral': return 0xff7f50ff;\n case 'cornflowerblue': return 0x6495edff;\n case 'cornsilk': return 0xfff8dcff;\n case 'crimson': return 0xdc143cff;\n case 'cyan': return 0x00ffffff;\n case 'darkblue': return 0x00008bff;\n case 'darkcyan': return 0x008b8bff;\n case 'darkgoldenrod': return 0xb8860bff;\n case 'darkgray': return 0xa9a9a9ff;\n case 'darkgreen': return 0x006400ff;\n case 'darkgrey': return 0xa9a9a9ff;\n case 'darkkhaki': return 0xbdb76bff;\n case 'darkmagenta': return 0x8b008bff;\n case 'darkolivegreen': return 0x556b2fff;\n case 'darkorange': return 0xff8c00ff;\n case 'darkorchid': return 0x9932ccff;\n case 'darkred': return 0x8b0000ff;\n case 'darksalmon': return 0xe9967aff;\n case 'darkseagreen': return 0x8fbc8fff;\n case 'darkslateblue': return 0x483d8bff;\n case 'darkslategray': return 0x2f4f4fff;\n case 'darkslategrey': return 0x2f4f4fff;\n case 'darkturquoise': return 0x00ced1ff;\n case 'darkviolet': return 0x9400d3ff;\n case 'deeppink': return 0xff1493ff;\n case 'deepskyblue': return 0x00bfffff;\n case 'dimgray': return 0x696969ff;\n case 'dimgrey': return 0x696969ff;\n case 'dodgerblue': return 0x1e90ffff;\n case 'firebrick': return 0xb22222ff;\n case 'floralwhite': return 0xfffaf0ff;\n case 'forestgreen': return 0x228b22ff;\n case 'fuchsia': return 0xff00ffff;\n case 'gainsboro': return 0xdcdcdcff;\n case 'ghostwhite': return 0xf8f8ffff;\n case 'gold': return 0xffd700ff;\n case 'goldenrod': return 0xdaa520ff;\n case 'gray': return 0x808080ff;\n case 'green': return 0x008000ff;\n case 'greenyellow': return 0xadff2fff;\n case 'grey': return 0x808080ff;\n case 'honeydew': return 0xf0fff0ff;\n case 'hotpink': return 0xff69b4ff;\n case 'indianred': return 0xcd5c5cff;\n case 'indigo': return 0x4b0082ff;\n case 'ivory': return 0xfffff0ff;\n case 'khaki': return 0xf0e68cff;\n case 'lavender': return 0xe6e6faff;\n case 'lavenderblush': return 0xfff0f5ff;\n case 'lawngreen': return 0x7cfc00ff;\n case 'lemonchiffon': return 0xfffacdff;\n case 'lightblue': return 0xadd8e6ff;\n case 'lightcoral': return 0xf08080ff;\n case 'lightcyan': return 0xe0ffffff;\n case 'lightgoldenrodyellow': return 0xfafad2ff;\n case 'lightgray': return 0xd3d3d3ff;\n case 'lightgreen': return 0x90ee90ff;\n case 'lightgrey': return 0xd3d3d3ff;\n case 'lightpink': return 0xffb6c1ff;\n case 'lightsalmon': return 0xffa07aff;\n case 'lightseagreen': return 0x20b2aaff;\n case 'lightskyblue': return 0x87cefaff;\n case 'lightslategray': return 0x778899ff;\n case 'lightslategrey': return 0x778899ff;\n case 'lightsteelblue': return 0xb0c4deff;\n case 'lightyellow': return 0xffffe0ff;\n case 'lime': return 0x00ff00ff;\n case 'limegreen': return 0x32cd32ff;\n case 'linen': return 0xfaf0e6ff;\n case 'magenta': return 0xff00ffff;\n case 'maroon': return 0x800000ff;\n case 'mediumaquamarine': return 0x66cdaaff;\n case 'mediumblue': return 0x0000cdff;\n case 'mediumorchid': return 0xba55d3ff;\n case 'mediumpurple': return 0x9370dbff;\n case 'mediumseagreen': return 0x3cb371ff;\n case 'mediumslateblue': return 0x7b68eeff;\n case 'mediumspringgreen': return 0x00fa9aff;\n case 'mediumturquoise': return 0x48d1ccff;\n case 'mediumvioletred': return 0xc71585ff;\n case 'midnightblue': return 0x191970ff;\n case 'mintcream': return 0xf5fffaff;\n case 'mistyrose': return 0xffe4e1ff;\n case 'moccasin': return 0xffe4b5ff;\n case 'navajowhite': return 0xffdeadff;\n case 'navy': return 0x000080ff;\n case 'oldlace': return 0xfdf5e6ff;\n case 'olive': return 0x808000ff;\n case 'olivedrab': return 0x6b8e23ff;\n case 'orange': return 0xffa500ff;\n case 'orangered': return 0xff4500ff;\n case 'orchid': return 0xda70d6ff;\n case 'palegoldenrod': return 0xeee8aaff;\n case 'palegreen': return 0x98fb98ff;\n case 'paleturquoise': return 0xafeeeeff;\n case 'palevioletred': return 0xdb7093ff;\n case 'papayawhip': return 0xffefd5ff;\n case 'peachpuff': return 0xffdab9ff;\n case 'peru': return 0xcd853fff;\n case 'pink': return 0xffc0cbff;\n case 'plum': return 0xdda0ddff;\n case 'powderblue': return 0xb0e0e6ff;\n case 'purple': return 0x800080ff;\n case 'rebeccapurple': return 0x663399ff;\n case 'red': return 0xff0000ff;\n case 'rosybrown': return 0xbc8f8fff;\n case 'royalblue': return 0x4169e1ff;\n case 'saddlebrown': return 0x8b4513ff;\n case 'salmon': return 0xfa8072ff;\n case 'sandybrown': return 0xf4a460ff;\n case 'seagreen': return 0x2e8b57ff;\n case 'seashell': return 0xfff5eeff;\n case 'sienna': return 0xa0522dff;\n case 'silver': return 0xc0c0c0ff;\n case 'skyblue': return 0x87ceebff;\n case 'slateblue': return 0x6a5acdff;\n case 'slategray': return 0x708090ff;\n case 'slategrey': return 0x708090ff;\n case 'snow': return 0xfffafaff;\n case 'springgreen': return 0x00ff7fff;\n case 'steelblue': return 0x4682b4ff;\n case 'tan': return 0xd2b48cff;\n case 'teal': return 0x008080ff;\n case 'thistle': return 0xd8bfd8ff;\n case 'tomato': return 0xff6347ff;\n case 'turquoise': return 0x40e0d0ff;\n case 'violet': return 0xee82eeff;\n case 'wheat': return 0xf5deb3ff;\n case 'white': return 0xffffffff;\n case 'whitesmoke': return 0xf5f5f5ff;\n case 'yellow': return 0xffff00ff;\n case 'yellowgreen': return 0x9acd32ff;\n }\n return null;\n}\n\nmodule.exports = normalizeColor;\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","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\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction filterUniqueArray(arr) {\n return arr.filter(function (val, index) {\n return arr.lastIndexOf(val) === index;\n });\n}\n\nexport default function assignStyle(base) {\n for (var i = 0, len = arguments.length <= 1 ? 0 : arguments.length - 1; i < len; ++i) {\n var style = i + 1 < 1 || arguments.length <= i + 1 ? undefined : arguments[i + 1];\n\n for (var property in style) {\n var value = style[property];\n var baseValue = base[property];\n\n if (baseValue && value) {\n if (Array.isArray(baseValue)) {\n base[property] = filterUniqueArray(baseValue.concat(value));\n continue;\n }\n\n if (Array.isArray(value)) {\n base[property] = filterUniqueArray([baseValue].concat(_toConsumableArray(value)));\n continue;\n }\n\n if (_typeof(value) === 'object') {\n base[property] = assignStyle({}, baseValue, value);\n continue;\n }\n }\n\n base[property] = value;\n }\n }\n\n return base;\n}","var DASH = /-([a-z])/g;\nvar MS = /^Ms/g;\nvar cache = {};\n\nfunction toUpper(match) {\n return match[1].toUpperCase();\n}\n\nexport default function camelCaseProperty(property) {\n if (cache.hasOwnProperty(property)) {\n return cache[property];\n }\n\n var camelProp = property.replace(DASH, toUpper).replace(MS, 'ms');\n cache[property] = camelProp;\n return camelProp;\n}","import hyphenateStyleName from 'hyphenate-style-name';\nexport default function hyphenateProperty(property) {\n return hyphenateStyleName(property);\n}","import hyphenateProperty from './hyphenateProperty';\nexport default function cssifyDeclaration(property, value) {\n return hyphenateProperty(property) + ':' + value;\n}","import cssifyDeclaration from './cssifyDeclaration';\nexport default function cssifyObject(style) {\n var css = '';\n\n for (var property in style) {\n var value = style[property];\n\n if (typeof value !== 'string' && typeof value !== 'number') {\n continue;\n } // prevents the semicolon after\n // the last rule declaration\n\n\n if (css) {\n css += ';';\n }\n\n css += cssifyDeclaration(property, value);\n }\n\n return css;\n}","var RE = /^(Webkit|Moz|O|ms)/;\nexport default function isPrefixedProperty(property) {\n return RE.test(property);\n}","var RE = /-webkit-|-moz-|-ms-/;\nexport default function isPrefixedValue(value) {\n return typeof value === 'string' && RE.test(value);\n}","import hyphenateProperty from './hyphenateProperty';\nvar unitlessProperties = {\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n fontWeight: true,\n lineHeight: true,\n opacity: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\nvar prefixedUnitlessProperties = ['animationIterationCount', 'boxFlex', 'boxFlexGroup', 'boxOrdinalGroup', 'columnCount', 'flex', 'flexGrow', 'flexPositive', 'flexShrink', 'flexNegative', 'flexOrder', 'gridColumn', 'gridColumnEnd', 'gridColumnStart', 'gridRow', 'gridRowEnd', 'gridRowStart', 'lineClamp', 'order'];\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\nfunction getPrefixedProperty(prefix, property) {\n return prefix + property.charAt(0).toUpperCase() + property.slice(1);\n} // add all prefixed properties to the unitless properties\n\n\nfor (var i = 0, len = prefixedUnitlessProperties.length; i < len; ++i) {\n var property = prefixedUnitlessProperties[i];\n unitlessProperties[property] = true;\n\n for (var j = 0, jLen = prefixes.length; j < jLen; ++j) {\n unitlessProperties[getPrefixedProperty(prefixes[j], property)] = true;\n }\n} // add all hypenated properties as well\n\n\nfor (var _property in unitlessProperties) {\n unitlessProperties[hyphenateProperty(_property)] = true;\n}\n\nexport default function isUnitlessProperty(property) {\n return unitlessProperties.hasOwnProperty(property);\n}","var RE = /^(ms|Webkit|Moz|O)/;\nexport default function unprefixProperty(property) {\n var propertyWithoutPrefix = property.replace(RE, '');\n return propertyWithoutPrefix.charAt(0).toLowerCase() + propertyWithoutPrefix.slice(1);\n}","import camelCaseProperty from './camelCaseProperty';\nimport unprefixProperty from './unprefixProperty';\nexport default function normalizeProperty(property) {\n return unprefixProperty(camelCaseProperty(property));\n}","import hyphenateProperty from './hyphenateProperty';\nexport default function resolveArrayValue(property, value) {\n return value.join(';' + hyphenateProperty(property) + ':');\n}","var RE = /(-ms-|-webkit-|-moz-|-o-)/g;\nexport default function unprefixValue(value) {\n if (typeof value === 'string') {\n return value.replace(RE, '');\n }\n\n return value;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = hyphenateProperty;\n\nvar _hyphenateStyleName = require(\"hyphenate-style-name\");\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction hyphenateProperty(property) {\n return (0, _hyphenateStyleName2[\"default\"])(property);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = isPrefixedValue;\nvar RE = /-webkit-|-moz-|-ms-/;\n\nfunction isPrefixedValue(value) {\n return typeof value === 'string' && RE.test(value);\n}","\"use strict\";\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 */\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\n\n\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\n\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\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 */\n'use strict';\n\nvar validateFormat = process.env.NODE_ENV !== \"production\" ? function (format) {\n if (format === undefined) {\n throw new Error('invariant(...): Second argument must be a string.');\n }\n} : function (format) {};\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments to provide\n * information about what broke and what you were expecting.\n *\n * The invariant message will be stripped in production, but the invariant will\n * remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format) {\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 validateFormat(format);\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return String(args[argIndex++]);\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // Skip invariant's own stack frame.\n\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar emptyFunction = require(\"./emptyFunction\");\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\n\nfunction printWarning(format) {\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 var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n}\n\nvar warning = process.env.NODE_ENV !== \"production\" ? function (condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\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 printWarning.apply(void 0, [format].concat(args));\n }\n} : emptyFunction;\nmodule.exports = warning;","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createPrefixer;\n\nvar _prefixProperty = require('./utils/prefixProperty');\n\nvar _prefixProperty2 = _interopRequireDefault(_prefixProperty);\n\nvar _prefixValue = require('./utils/prefixValue');\n\nvar _prefixValue2 = _interopRequireDefault(_prefixValue);\n\nvar _addNewValuesOnly = require('./utils/addNewValuesOnly');\n\nvar _addNewValuesOnly2 = _interopRequireDefault(_addNewValuesOnly);\n\nvar _isObject = require('./utils/isObject');\n\nvar _isObject2 = _interopRequireDefault(_isObject);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createPrefixer(_ref) {\n var prefixMap = _ref.prefixMap,\n plugins = _ref.plugins;\n\n return function prefix(style) {\n for (var property in style) {\n var value = style[property];\n\n // handle nested objects\n if ((0, _isObject2.default)(value)) {\n style[property] = prefix(value);\n // handle array values\n } else if (Array.isArray(value)) {\n var combinedValue = [];\n\n for (var i = 0, len = value.length; i < len; ++i) {\n var processedValue = (0, _prefixValue2.default)(plugins, property, value[i], style, prefixMap);\n\n (0, _addNewValuesOnly2.default)(combinedValue, processedValue || value[i]);\n }\n\n // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n if (combinedValue.length > 0) {\n style[property] = combinedValue;\n }\n } else {\n var _processedValue = (0, _prefixValue2.default)(plugins, property, value, style, prefixMap);\n\n // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n if (_processedValue) {\n style[property] = _processedValue;\n }\n\n style = (0, _prefixProperty2.default)(prefixMap, property, style);\n }\n }\n\n return style;\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = backgroundClip;\nfunction backgroundClip() {\n return null;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = crossFade;\n\nvar _cssInJsUtils = require('css-in-js-utils');\n\nvar CROSS_FADE_REGEX = /cross-fade\\(/g;\n// http://caniuse.com/#search=cross-fade\nvar prefixes = ['-webkit-', ''];\n\nfunction crossFade(property, value) {\n if (typeof value === 'string' && !(0, _cssInJsUtils.isPrefixedValue)(value) && value.indexOf('cross-fade(') !== -1) {\n return prefixes.map(function (prefix) {\n return value.replace(CROSS_FADE_REGEX, prefix + 'cross-fade(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cursor;\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar values = {\n 'zoom-in': true,\n 'zoom-out': true,\n grab: true,\n grabbing: true\n};\n\nfunction cursor(property, value) {\n if (property === 'cursor' && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = filter;\n\nvar _cssInJsUtils = require('css-in-js-utils');\n\nvar FILTER_REGEX = /filter\\(/g;\n// http://caniuse.com/#feat=css-filter-function\nvar prefixes = ['-webkit-', ''];\n\nfunction filter(property, value) {\n if (typeof value === 'string' && !(0, _cssInJsUtils.isPrefixedValue)(value) && value.indexOf('filter(') !== -1) {\n return prefixes.map(function (prefix) {\n return value.replace(FILTER_REGEX, prefix + 'filter(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = imageSet;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// http://caniuse.com/#feat=css-image-set\nvar prefixes = ['-webkit-', ''];\n\nfunction imageSet(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('image-set(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/image-set\\(/g, prefix + 'image-set(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = logical;\nvar alternativeProps = {\n marginBlockStart: ['WebkitMarginBefore'],\n marginBlockEnd: ['WebkitMarginAfter'],\n marginInlineStart: ['WebkitMarginStart', 'MozMarginStart'],\n marginInlineEnd: ['WebkitMarginEnd', 'MozMarginEnd'],\n paddingBlockStart: ['WebkitPaddingBefore'],\n paddingBlockEnd: ['WebkitPaddingAfter'],\n paddingInlineStart: ['WebkitPaddingStart', 'MozPaddingStart'],\n paddingInlineEnd: ['WebkitPaddingEnd', 'MozPaddingEnd'],\n borderBlockStart: ['WebkitBorderBefore'],\n borderBlockStartColor: ['WebkitBorderBeforeColor'],\n borderBlockStartStyle: ['WebkitBorderBeforeStyle'],\n borderBlockStartWidth: ['WebkitBorderBeforeWidth'],\n borderBlockEnd: ['WebkitBorderAfter'],\n borderBlockEndColor: ['WebkitBorderAfterColor'],\n borderBlockEndStyle: ['WebkitBorderAfterStyle'],\n borderBlockEndWidth: ['WebkitBorderAfterWidth'],\n borderInlineStart: ['WebkitBorderStart', 'MozBorderStart'],\n borderInlineStartColor: ['WebkitBorderStartColor', 'MozBorderStartColor'],\n borderInlineStartStyle: ['WebkitBorderStartStyle', 'MozBorderStartStyle'],\n borderInlineStartWidth: ['WebkitBorderStartWidth', 'MozBorderStartWidth'],\n borderInlineEnd: ['WebkitBorderEnd', 'MozBorderEnd'],\n borderInlineEndColor: ['WebkitBorderEndColor', 'MozBorderEndColor'],\n borderInlineEndStyle: ['WebkitBorderEndStyle', 'MozBorderEndStyle'],\n borderInlineEndWidth: ['WebkitBorderEndWidth', 'MozBorderEndWidth']\n};\n\nfunction logical(property, value, style) {\n if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {\n var alternativePropList = alternativeProps[property];\n for (var i = 0, len = alternativePropList.length; i < len; ++i) {\n style[alternativePropList[i]] = value;\n }\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = position;\nfunction position(property, value) {\n if (property === 'position' && value === 'sticky') {\n return ['-webkit-sticky', 'sticky'];\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sizing;\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar properties = {\n maxHeight: true,\n maxWidth: true,\n width: true,\n height: true,\n columnWidth: true,\n minWidth: true,\n minHeight: true\n};\nvar values = {\n 'min-content': true,\n 'max-content': true,\n 'fill-available': true,\n 'fit-content': true,\n 'contain-floats': true\n};\n\nfunction sizing(property, value) {\n if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = transition;\n\nvar _hyphenateProperty = require('css-in-js-utils/lib/hyphenateProperty');\n\nvar _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nvar _capitalizeString = require('../utils/capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar properties = {\n transition: true,\n transitionProperty: true,\n WebkitTransition: true,\n WebkitTransitionProperty: true,\n MozTransition: true,\n MozTransitionProperty: true\n};\n\nvar prefixMapping = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n ms: '-ms-'\n};\n\nfunction prefixValue(value, propertyPrefixMap) {\n if ((0, _isPrefixedValue2.default)(value)) {\n return value;\n }\n\n // only split multi values, not cubic beziers\n var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n\n for (var i = 0, len = multipleValues.length; i < len; ++i) {\n var singleValue = multipleValues[i];\n var values = [singleValue];\n for (var property in propertyPrefixMap) {\n var dashCaseProperty = (0, _hyphenateProperty2.default)(property);\n\n if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {\n var prefixes = propertyPrefixMap[property];\n for (var j = 0, pLen = prefixes.length; j < pLen; ++j) {\n // join all prefixes and create a new value\n values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty));\n }\n }\n }\n\n multipleValues[i] = values.join(',');\n }\n\n return multipleValues.join(',');\n}\n\nfunction transition(property, value, style, propertyPrefixMap) {\n // also check for already prefixed transitions\n if (typeof value === 'string' && properties.hasOwnProperty(property)) {\n var outputValue = prefixValue(value, propertyPrefixMap);\n // if the property is already prefixed\n var webkitOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-moz-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Webkit') > -1) {\n return webkitOutput;\n }\n\n var mozOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-webkit-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Moz') > -1) {\n return mozOutput;\n }\n\n style['Webkit' + (0, _capitalizeString2.default)(property)] = webkitOutput;\n style['Moz' + (0, _capitalizeString2.default)(property)] = mozOutput;\n return outputValue;\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addNewValuesOnly;\nfunction addIfNew(list, value) {\n if (list.indexOf(value) === -1) {\n list.push(value);\n }\n}\n\nfunction addNewValuesOnly(list, values) {\n if (Array.isArray(values)) {\n for (var i = 0, len = values.length; i < len; ++i) {\n addIfNew(list, values[i]);\n }\n } else {\n addIfNew(list, values);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = capitalizeString;\nfunction capitalizeString(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isObject;\nfunction isObject(value) {\n return value instanceof Object && !Array.isArray(value);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixProperty;\n\nvar _capitalizeString = require('./capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction prefixProperty(prefixProperties, property, style) {\n var requiredPrefixes = prefixProperties[property];\n\n if (requiredPrefixes && style.hasOwnProperty(property)) {\n var capitalizedProperty = (0, _capitalizeString2.default)(property);\n\n for (var i = 0; i < requiredPrefixes.length; ++i) {\n var prefixedProperty = requiredPrefixes[i] + capitalizedProperty;\n\n if (!style[prefixedProperty]) {\n style[prefixedProperty] = style[property];\n }\n }\n }\n\n return style;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixValue;\nfunction prefixValue(plugins, property, value, style, metaData) {\n for (var i = 0, len = plugins.length; i < len; ++i) {\n var processedValue = plugins[i](property, value, style, metaData);\n\n // we can stop processing if a value is returned\n // as all plugin criteria are unique\n if (processedValue) {\n return processedValue;\n }\n }\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","'use strict';\n\nfunction nullthrows(x, message) {\n if (x != null) {\n return x;\n }\n var error = new Error(message !== undefined ? message : 'Got unexpected ' + x);\n error.framesToPop = 1; // Skip nullthrows's own stack frame.\n throw error;\n}\n\nmodule.exports = nullthrows;\nmodule.exports.default = nullthrows;\n\nObject.defineProperty(module.exports, '__esModule', {value: true});\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 max) {\n return max;\n }\n return value;\n}\nmodule.exports = clamp;","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * Copyright (c) Nicolas Gallagher\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 */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.styleq = void 0;\nvar cache = new WeakMap();\nvar compiledKey = '$$css';\n\nfunction createStyleq(options) {\n var disableCache;\n var disableMix;\n var transform;\n\n if (options != null) {\n disableCache = options.disableCache === true;\n disableMix = options.disableMix === true;\n transform = options.transform;\n }\n\n return function styleq() {\n // Keep track of property commits to the className\n var definedProperties = []; // The className and inline style to build up\n\n var className = '';\n var inlineStyle = null; // The current position in the cache graph\n\n var nextCache = disableCache ? null : cache; // This way of creating an array from arguments is fastest\n\n var styles = new Array(arguments.length);\n\n for (var i = 0; i < arguments.length; i++) {\n styles[i] = arguments[i];\n } // Iterate over styles from last to first\n\n\n while (styles.length > 0) {\n var possibleStyle = styles.pop(); // Skip empty items\n\n if (possibleStyle == null || possibleStyle === false) {\n continue;\n } // Push nested styles back onto the stack to be processed\n\n\n if (Array.isArray(possibleStyle)) {\n for (var _i = 0; _i < possibleStyle.length; _i++) {\n styles.push(possibleStyle[_i]);\n }\n\n continue;\n } // Process an individual style object\n\n\n var style = transform != null ? transform(possibleStyle) : possibleStyle;\n\n if (style.$$css) {\n // Build up the class names defined by this object\n var classNameChunk = ''; // Check the cache to see if we've already done this work\n\n if (nextCache != null && nextCache.has(style)) {\n // Cache: read\n var cacheEntry = nextCache.get(style);\n\n if (cacheEntry != null) {\n classNameChunk = cacheEntry[0]; // $FlowIgnore\n\n definedProperties.push.apply(definedProperties, cacheEntry[1]);\n nextCache = cacheEntry[2];\n }\n } // Update the chunks with data from this object\n else {\n // The properties defined by this object\n var definedPropertiesChunk = [];\n\n for (var prop in style) {\n var value = style[prop];\n if (prop === compiledKey) continue; // Each property value is used as an HTML class name\n // { 'debug.string': 'debug.string', opacity: 's-jskmnoqp' }\n\n if (typeof value === 'string' || value === null) {\n // Only add to chunks if this property hasn't already been seen\n if (!definedProperties.includes(prop)) {\n definedProperties.push(prop);\n\n if (nextCache != null) {\n definedPropertiesChunk.push(prop);\n }\n\n if (typeof value === 'string') {\n classNameChunk += classNameChunk ? ' ' + value : value;\n }\n }\n } // If we encounter a value that isn't a string or `null`\n else {\n console.error(\"styleq: \".concat(prop, \" typeof \").concat(String(value), \" is not \\\"string\\\" or \\\"null\\\".\"));\n }\n } // Cache: write\n\n\n if (nextCache != null) {\n // Create the next WeakMap for this sequence of styles\n var weakMap = new WeakMap();\n nextCache.set(style, [classNameChunk, definedPropertiesChunk, weakMap]);\n nextCache = weakMap;\n }\n } // Order of classes in chunks matches property-iteration order of style\n // object. Order of chunks matches passed order of styles from first to\n // last (which we iterate over in reverse).\n\n\n if (classNameChunk) {\n className = className ? classNameChunk + ' ' + className : classNameChunk;\n }\n } // ----- DYNAMIC: Process inline style object -----\n else {\n if (disableMix) {\n if (inlineStyle == null) {\n inlineStyle = {};\n }\n\n inlineStyle = Object.assign({}, style, inlineStyle);\n } else {\n var subStyle = null;\n\n for (var _prop in style) {\n var _value = style[_prop];\n\n if (_value !== undefined) {\n if (!definedProperties.includes(_prop)) {\n if (_value != null) {\n if (inlineStyle == null) {\n inlineStyle = {};\n }\n\n if (subStyle == null) {\n subStyle = {};\n }\n\n subStyle[_prop] = _value;\n }\n\n definedProperties.push(_prop); // Cache is unnecessary overhead if results can't be reused.\n\n nextCache = null;\n }\n }\n }\n\n if (subStyle != null) {\n inlineStyle = Object.assign(subStyle, inlineStyle);\n }\n }\n }\n }\n\n var styleProps = [className, inlineStyle];\n return styleProps;\n };\n}\n\nvar styleq = createStyleq();\nexports.styleq = styleq;\nstyleq.factory = createStyleq;","/**\n * Copyright (c) Nicolas Gallagher\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';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.localizeStyle = localizeStyle;\nvar cache = new WeakMap();\nvar markerProp = '$$css$localize';\n/**\n * The compiler polyfills logical properties and values, generating a class\n * name for both writing directions. The style objects are annotated by\n * the compiler as needing this runtime transform. The results are memoized.\n *\n * { '$$css$localize': true, float: [ 'float-left', 'float-right' ] }\n * => { float: 'float-left' }\n */\n\nfunction compileStyle(style, isRTL) {\n // Create a new compiled style for styleq\n var compiledStyle = {};\n\n for (var prop in style) {\n if (prop !== markerProp) {\n var value = style[prop];\n\n if (Array.isArray(value)) {\n compiledStyle[prop] = isRTL ? value[1] : value[0];\n } else {\n compiledStyle[prop] = value;\n }\n }\n }\n\n return compiledStyle;\n}\n\nfunction localizeStyle(style, isRTL) {\n if (style[markerProp] != null) {\n var compiledStyleIndex = isRTL ? 1 : 0; // Check the cache in case we've already seen this object\n\n if (cache.has(style)) {\n var _cachedStyles = cache.get(style);\n\n var _compiledStyle = _cachedStyles[compiledStyleIndex];\n\n if (_compiledStyle == null) {\n // Update the missing cache entry\n _compiledStyle = compileStyle(style, isRTL);\n _cachedStyles[compiledStyleIndex] = _compiledStyle;\n cache.set(style, _cachedStyles);\n }\n\n return _compiledStyle;\n } // Create a new compiled style for styleq\n\n\n var compiledStyle = compileStyle(style, isRTL);\n var cachedStyles = new Array(2);\n cachedStyles[compiledStyleIndex] = compiledStyle;\n cache.set(style, cachedStyles);\n return compiledStyle;\n }\n\n return style;\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (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};","// 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__.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))","// 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};","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nvar accessibilityRoleToWebRole = {\n adjustable: 'slider',\n button: 'button',\n header: 'heading',\n image: 'img',\n imagebutton: null,\n keyboardkey: null,\n label: null,\n link: 'link',\n none: 'presentation',\n search: 'search',\n summary: 'region',\n text: null\n};\nvar propsToAriaRole = _ref => {\n var accessibilityRole = _ref.accessibilityRole,\n role = _ref.role;\n var _role = role || accessibilityRole;\n if (_role) {\n var inferredRole = accessibilityRoleToWebRole[_role];\n if (inferredRole !== null) {\n // ignore roles that don't map to web\n return inferredRole || _role;\n }\n }\n};\nexport default propsToAriaRole;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport propsToAriaRole from './propsToAriaRole';\nvar roleComponents = {\n article: 'article',\n banner: 'header',\n blockquote: 'blockquote',\n button: 'button',\n code: 'code',\n complementary: 'aside',\n contentinfo: 'footer',\n deletion: 'del',\n emphasis: 'em',\n figure: 'figure',\n insertion: 'ins',\n form: 'form',\n list: 'ul',\n listitem: 'li',\n main: 'main',\n navigation: 'nav',\n paragraph: 'p',\n region: 'section',\n strong: 'strong'\n};\nvar emptyObject = {};\nvar propsToAccessibilityComponent = function propsToAccessibilityComponent(props) {\n if (props === void 0) {\n props = emptyObject;\n }\n // special-case for \"label\" role which doesn't map to an ARIA role\n if (props.accessibilityRole === 'label') {\n return 'label';\n }\n var role = propsToAriaRole(props);\n if (role) {\n if (role === 'heading') {\n var level = props.accessibilityLevel || props['aria-level'];\n if (level != null) {\n return \"h\" + level;\n }\n return 'h1';\n }\n return roleComponents[role];\n }\n};\nexport default propsToAccessibilityComponent;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport isDisabled from './isDisabled';\nimport propsToAccessibilityComponent from './propsToAccessibilityComponent';\nimport propsToAriaRole from './propsToAriaRole';\nvar AccessibilityUtil = {\n isDisabled,\n propsToAccessibilityComponent,\n propsToAriaRole\n};\nexport default AccessibilityUtil;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nvar isDisabled = props => props.disabled || Array.isArray(props.accessibilityStates) && props.accessibilityStates.indexOf('disabled') > -1;\nexport default isDisabled;","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nvar unitlessNumbers = {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n // transform types\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n // RN properties\n shadowOpacity: true\n};\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\nvar prefixKey = (prefix, key) => {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\nObject.keys(unitlessNumbers).forEach(prop => {\n prefixes.forEach(prefix => {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\nexport default unitlessNumbers;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nvar isWebColor = color => color === 'currentcolor' || color === 'currentColor' || color === 'inherit' || color.indexOf('var(') === 0;\nexport default isWebColor;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport normalizeColor from '@react-native/normalize-color';\nvar processColor = color => {\n if (color === undefined || color === null) {\n return color;\n }\n\n // convert number and hex\n var int32Color = normalizeColor(color);\n if (int32Color === undefined || int32Color === null) {\n return undefined;\n }\n int32Color = (int32Color << 24 | int32Color >>> 8) >>> 0;\n return int32Color;\n};\nexport default processColor;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport isWebColor from '../../../modules/isWebColor';\nimport processColor from '../../../exports/processColor';\nvar normalizeColor = function normalizeColor(color, opacity) {\n if (opacity === void 0) {\n opacity = 1;\n }\n if (color == null) return;\n if (typeof color === 'string' && isWebColor(color)) {\n return color;\n }\n var colorInt = processColor(color);\n if (colorInt != null) {\n var r = colorInt >> 16 & 255;\n var g = colorInt >> 8 & 255;\n var b = colorInt & 255;\n var a = (colorInt >> 24 & 255) / 255;\n var alpha = (a * opacity).toFixed(2);\n return \"rgba(\" + r + \",\" + g + \",\" + b + \",\" + alpha + \")\";\n }\n};\nexport default normalizeColor;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport unitlessNumbers from './unitlessNumbers';\nimport normalizeColor from './normalizeColor';\nvar colorProps = {\n backgroundColor: true,\n borderColor: true,\n borderTopColor: true,\n borderRightColor: true,\n borderBottomColor: true,\n borderLeftColor: true,\n color: true,\n shadowColor: true,\n textDecorationColor: true,\n textShadowColor: true\n};\nexport default function normalizeValueWithProperty(value, property) {\n var returnValue = value;\n if ((property == null || !unitlessNumbers[property]) && typeof value === 'number') {\n returnValue = value + \"px\";\n } else if (property != null && colorProps[property]) {\n returnValue = normalizeColor(value);\n }\n return returnValue;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport default canUseDOM;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport canUseDOM from '../../../modules/canUseDom';\n/**\n * The browser implements the CSS cascade, where the order of properties is a\n * factor in determining which styles to paint. React Native is different. It\n * gives giving precedence to the more specific style property. For example,\n * the value of `paddingTop` takes precedence over that of `padding`.\n *\n * This module creates mutally exclusive style declarations by expanding all of\n * React Native's supported shortform properties (e.g. `padding`) to their\n * longfrom equivalents.\n */\n\nvar emptyObject = {};\nvar supportsCSS3TextDecoration = !canUseDOM || window.CSS != null && window.CSS.supports != null && (window.CSS.supports('text-decoration-line', 'none') || window.CSS.supports('-webkit-text-decoration-line', 'none'));\nvar MONOSPACE_FONT_STACK = 'monospace,monospace';\nvar SYSTEM_FONT_STACK = '-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif';\nvar STYLE_SHORT_FORM_EXPANSIONS = {\n borderColor: ['borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor'],\n borderBlockColor: ['borderTopColor', 'borderBottomColor'],\n borderInlineColor: ['borderRightColor', 'borderLeftColor'],\n borderRadius: ['borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomRightRadius', 'borderBottomLeftRadius'],\n borderStyle: ['borderTopStyle', 'borderRightStyle', 'borderBottomStyle', 'borderLeftStyle'],\n borderBlockStyle: ['borderTopStyle', 'borderBottomStyle'],\n borderInlineStyle: ['borderRightStyle', 'borderLeftStyle'],\n borderWidth: ['borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth'],\n borderBlockWidth: ['borderTopWidth', 'borderBottomWidth'],\n borderInlineWidth: ['borderRightWidth', 'borderLeftWidth'],\n insetBlock: ['top', 'bottom'],\n insetInline: ['left', 'right'],\n marginBlock: ['marginTop', 'marginBottom'],\n marginInline: ['marginRight', 'marginLeft'],\n paddingBlock: ['paddingTop', 'paddingBottom'],\n paddingInline: ['paddingRight', 'paddingLeft'],\n overflow: ['overflowX', 'overflowY'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n borderBlockStartColor: ['borderTopColor'],\n borderBlockStartStyle: ['borderTopStyle'],\n borderBlockStartWidth: ['borderTopWidth'],\n borderBlockEndColor: ['borderBottomColor'],\n borderBlockEndStyle: ['borderBottomStyle'],\n borderBlockEndWidth: ['borderBottomWidth'],\n //borderInlineStartColor: ['borderLeftColor'],\n //borderInlineStartStyle: ['borderLeftStyle'],\n //borderInlineStartWidth: ['borderLeftWidth'],\n //borderInlineEndColor: ['borderRightColor'],\n //borderInlineEndStyle: ['borderRightStyle'],\n //borderInlineEndWidth: ['borderRightWidth'],\n borderEndStartRadius: ['borderBottomLeftRadius'],\n borderEndEndRadius: ['borderBottomRightRadius'],\n borderStartStartRadius: ['borderTopLeftRadius'],\n borderStartEndRadius: ['borderTopRightRadius'],\n insetBlockEnd: ['bottom'],\n insetBlockStart: ['top'],\n //insetInlineEnd: ['right'],\n //insetInlineStart: ['left'],\n marginBlockStart: ['marginTop'],\n marginBlockEnd: ['marginBottom'],\n //marginInlineStart: ['marginLeft'],\n //marginInlineEnd: ['marginRight'],\n paddingBlockStart: ['paddingTop'],\n paddingBlockEnd: ['paddingBottom']\n //paddingInlineStart: ['marginLeft'],\n //paddingInlineEnd: ['marginRight'],\n};\n\n/**\n * Reducer\n */\n\nvar createReactDOMStyle = (style, isInline) => {\n if (!style) {\n return emptyObject;\n }\n var resolvedStyle = {};\n var _loop = function _loop() {\n var value = style[prop];\n if (\n // Ignore everything with a null value\n value == null) {\n return \"continue\";\n }\n if (prop === 'backgroundClip') {\n // TODO: remove once this issue is fixed\n // https://github.com/rofrischmann/inline-style-prefixer/issues/159\n if (value === 'text') {\n resolvedStyle.backgroundClip = value;\n resolvedStyle.WebkitBackgroundClip = value;\n }\n } else if (prop === 'flex') {\n if (value === -1) {\n resolvedStyle.flexGrow = 0;\n resolvedStyle.flexShrink = 1;\n resolvedStyle.flexBasis = 'auto';\n } else {\n resolvedStyle.flex = value;\n }\n } else if (prop === 'font') {\n resolvedStyle[prop] = value.replace('System', SYSTEM_FONT_STACK);\n } else if (prop === 'fontFamily') {\n if (value.indexOf('System') > -1) {\n var stack = value.split(/,\\s*/);\n stack[stack.indexOf('System')] = SYSTEM_FONT_STACK;\n resolvedStyle[prop] = stack.join(',');\n } else if (value === 'monospace') {\n resolvedStyle[prop] = MONOSPACE_FONT_STACK;\n } else {\n resolvedStyle[prop] = value;\n }\n } else if (prop === 'textDecorationLine') {\n // use 'text-decoration' for browsers that only support CSS2\n // text-decoration (e.g., IE, Edge)\n if (!supportsCSS3TextDecoration) {\n resolvedStyle.textDecoration = value;\n } else {\n resolvedStyle.textDecorationLine = value;\n }\n } else if (prop === 'writingDirection') {\n resolvedStyle.direction = value;\n } else {\n var _value = normalizeValueWithProperty(style[prop], prop);\n var longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];\n if (isInline && prop === 'inset') {\n if (style.insetInline == null) {\n resolvedStyle.left = _value;\n resolvedStyle.right = _value;\n }\n if (style.insetBlock == null) {\n resolvedStyle.top = _value;\n resolvedStyle.bottom = _value;\n }\n } else if (isInline && prop === 'margin') {\n if (style.marginInline == null) {\n resolvedStyle.marginLeft = _value;\n resolvedStyle.marginRight = _value;\n }\n if (style.marginBlock == null) {\n resolvedStyle.marginTop = _value;\n resolvedStyle.marginBottom = _value;\n }\n } else if (isInline && prop === 'padding') {\n if (style.paddingInline == null) {\n resolvedStyle.paddingLeft = _value;\n resolvedStyle.paddingRight = _value;\n }\n if (style.paddingBlock == null) {\n resolvedStyle.paddingTop = _value;\n resolvedStyle.paddingBottom = _value;\n }\n } else if (longFormProperties) {\n longFormProperties.forEach((longForm, i) => {\n // The value of any longform property in the original styles takes\n // precedence over the shortform's value.\n if (style[longForm] == null) {\n resolvedStyle[longForm] = _value;\n }\n });\n } else {\n resolvedStyle[prop] = _value;\n }\n }\n };\n for (var prop in style) {\n var _ret = _loop();\n if (_ret === \"continue\") continue;\n }\n return resolvedStyle;\n};\nexport default createReactDOMStyle;","/* eslint-disable */\n\n/**\n * JS Implementation of MurmurHash2\n *\n * @author Gary Court\n * @see http://github.com/garycourt/murmurhash-js\n * @author Austin Appleby\n * @see http://sites.google.com/site/murmurhash/\n *\n * @param {string} str ASCII only\n * @param {number} seed Positive integer only\n * @return {number} 32-bit positive integer hash\n *\n * \n */\n\nfunction murmurhash2_32_gc(str, seed) {\n var l = str.length,\n h = seed ^ l,\n i = 0,\n k;\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return h >>> 0;\n}\nvar hash = str => murmurhash2_32_gc(str, 1).toString(36);\nexport default hash;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\nfunction hyphenateStyleName(name) {\n if (name in cache) {\n return cache[name];\n }\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return cache[name] = msPattern.test(hName) ? '-' + hName : hName;\n}\nexport default hyphenateStyleName;","import backgroundClip from 'inline-style-prefixer/lib/plugins/backgroundClip';\nimport crossFade from 'inline-style-prefixer/lib/plugins/crossFade';\nimport cursor from 'inline-style-prefixer/lib/plugins/cursor';\nimport filter from 'inline-style-prefixer/lib/plugins/filter';\nimport imageSet from 'inline-style-prefixer/lib/plugins/imageSet';\nimport logical from 'inline-style-prefixer/lib/plugins/logical';\nimport position from 'inline-style-prefixer/lib/plugins/position';\nimport sizing from 'inline-style-prefixer/lib/plugins/sizing';\nimport transition from 'inline-style-prefixer/lib/plugins/transition';\nvar w = ['Webkit'];\nvar m = ['Moz'];\nvar wm = ['Webkit', 'Moz'];\nvar wms = ['Webkit', 'ms'];\nvar wmms = ['Webkit', 'Moz', 'ms'];\nexport default {\n plugins: [backgroundClip, crossFade, cursor, filter, imageSet, logical, position, sizing, transition],\n prefixMap: {\n appearance: wmms,\n userSelect: wm,\n textEmphasisPosition: wms,\n textEmphasis: wms,\n textEmphasisStyle: wms,\n textEmphasisColor: wms,\n boxDecorationBreak: wms,\n clipPath: w,\n maskImage: wms,\n maskMode: wms,\n maskRepeat: wms,\n maskPosition: wms,\n maskClip: wms,\n maskOrigin: wms,\n maskSize: wms,\n maskComposite: wms,\n mask: wms,\n maskBorderSource: wms,\n maskBorderMode: wms,\n maskBorderSlice: wms,\n maskBorderWidth: wms,\n maskBorderOutset: wms,\n maskBorderRepeat: wms,\n maskBorder: wms,\n maskType: wms,\n textDecorationStyle: w,\n textDecorationSkip: w,\n textDecorationLine: w,\n textDecorationColor: w,\n filter: w,\n breakAfter: w,\n breakBefore: w,\n breakInside: w,\n columnCount: w,\n columnFill: w,\n columnGap: w,\n columnRule: w,\n columnRuleColor: w,\n columnRuleStyle: w,\n columnRuleWidth: w,\n columns: w,\n columnSpan: w,\n columnWidth: w,\n backdropFilter: w,\n hyphens: w,\n flowInto: w,\n flowFrom: w,\n regionFragment: w,\n textOrientation: w,\n tabSize: m,\n fontKerning: w,\n textSizeAdjust: w\n }\n};","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport createPrefixer from 'inline-style-prefixer/lib/createPrefixer';\nimport staticData from './static';\nvar prefixAll = createPrefixer(staticData);\nexport default prefixAll;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animationKeyframes\"];\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport createReactDOMStyle from './createReactDOMStyle';\nimport hash from './hash';\nimport hyphenateStyleName from './hyphenateStyleName';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport prefixStyles from '../../../modules/prefixStyles';\nvar cache = new Map();\nvar emptyObject = {};\nvar classicGroup = 1;\nvar atomicGroup = 3;\nvar customGroup = {\n borderColor: 2,\n borderRadius: 2,\n borderStyle: 2,\n borderWidth: 2,\n display: 2,\n flex: 2,\n inset: 2,\n margin: 2,\n overflow: 2,\n overscrollBehavior: 2,\n padding: 2,\n insetBlock: 2.1,\n insetInline: 2.1,\n marginInline: 2.1,\n marginBlock: 2.1,\n paddingInline: 2.1,\n paddingBlock: 2.1,\n borderBlockStartColor: 2.2,\n borderBlockStartStyle: 2.2,\n borderBlockStartWidth: 2.2,\n borderBlockEndColor: 2.2,\n borderBlockEndStyle: 2.2,\n borderBlockEndWidth: 2.2,\n borderInlineStartColor: 2.2,\n borderInlineStartStyle: 2.2,\n borderInlineStartWidth: 2.2,\n borderInlineEndColor: 2.2,\n borderInlineEndStyle: 2.2,\n borderInlineEndWidth: 2.2,\n borderEndStartRadius: 2.2,\n borderEndEndRadius: 2.2,\n borderStartStartRadius: 2.2,\n borderStartEndRadius: 2.2,\n insetBlockEnd: 2.2,\n insetBlockStart: 2.2,\n insetInlineEnd: 2.2,\n insetInlineStart: 2.2,\n marginBlockStart: 2.2,\n marginBlockEnd: 2.2,\n marginInlineStart: 2.2,\n marginInlineEnd: 2.2,\n paddingBlockStart: 2.2,\n paddingBlockEnd: 2.2,\n paddingInlineStart: 2.2,\n paddingInlineEnd: 2.2\n};\nvar borderTopLeftRadius = 'borderTopLeftRadius';\nvar borderTopRightRadius = 'borderTopRightRadius';\nvar borderBottomLeftRadius = 'borderBottomLeftRadius';\nvar borderBottomRightRadius = 'borderBottomRightRadius';\nvar borderLeftColor = 'borderLeftColor';\nvar borderLeftStyle = 'borderLeftStyle';\nvar borderLeftWidth = 'borderLeftWidth';\nvar borderRightColor = 'borderRightColor';\nvar borderRightStyle = 'borderRightStyle';\nvar borderRightWidth = 'borderRightWidth';\nvar right = 'right';\nvar marginLeft = 'marginLeft';\nvar marginRight = 'marginRight';\nvar paddingLeft = 'paddingLeft';\nvar paddingRight = 'paddingRight';\nvar left = 'left';\n\n// Map of LTR property names to their BiDi equivalent.\nvar PROPERTIES_FLIP = {\n [borderTopLeftRadius]: borderTopRightRadius,\n [borderTopRightRadius]: borderTopLeftRadius,\n [borderBottomLeftRadius]: borderBottomRightRadius,\n [borderBottomRightRadius]: borderBottomLeftRadius,\n [borderLeftColor]: borderRightColor,\n [borderLeftStyle]: borderRightStyle,\n [borderLeftWidth]: borderRightWidth,\n [borderRightColor]: borderLeftColor,\n [borderRightStyle]: borderLeftStyle,\n [borderRightWidth]: borderLeftWidth,\n [left]: right,\n [marginLeft]: marginRight,\n [marginRight]: marginLeft,\n [paddingLeft]: paddingRight,\n [paddingRight]: paddingLeft,\n [right]: left\n};\n\n// Map of I18N property names to their LTR equivalent.\nvar PROPERTIES_I18N = {\n borderStartStartRadius: borderTopLeftRadius,\n borderStartEndRadius: borderTopRightRadius,\n borderEndStartRadius: borderBottomLeftRadius,\n borderEndEndRadius: borderBottomRightRadius,\n borderInlineStartColor: borderLeftColor,\n borderInlineStartStyle: borderLeftStyle,\n borderInlineStartWidth: borderLeftWidth,\n borderInlineEndColor: borderRightColor,\n borderInlineEndStyle: borderRightStyle,\n borderInlineEndWidth: borderRightWidth,\n insetInlineEnd: right,\n insetInlineStart: left,\n marginInlineStart: marginLeft,\n marginInlineEnd: marginRight,\n paddingInlineStart: paddingLeft,\n paddingInlineEnd: paddingRight\n};\nvar PROPERTIES_VALUE = ['clear', 'float', 'textAlign'];\nexport function atomic(style) {\n var compiledStyle = {\n $$css: true\n };\n var compiledRules = [];\n function atomicCompile(srcProp, prop, value) {\n var valueString = stringifyValueWithProperty(value, prop);\n var cacheKey = prop + valueString;\n var cachedResult = cache.get(cacheKey);\n var identifier;\n if (cachedResult != null) {\n identifier = cachedResult[0];\n compiledRules.push(cachedResult[1]);\n } else {\n var v = srcProp !== prop ? cacheKey : valueString;\n identifier = createIdentifier('r', srcProp, v);\n var order = customGroup[srcProp] || atomicGroup;\n var rules = createAtomicRules(identifier, prop, value);\n var orderedRules = [rules, order];\n compiledRules.push(orderedRules);\n cache.set(cacheKey, [identifier, orderedRules]);\n }\n return identifier;\n }\n Object.keys(style).sort().forEach(srcProp => {\n var value = style[srcProp];\n if (value != null) {\n var localizeableValue;\n // BiDi flip values\n if (PROPERTIES_VALUE.indexOf(srcProp) > -1) {\n var _left = atomicCompile(srcProp, srcProp, 'left');\n var _right = atomicCompile(srcProp, srcProp, 'right');\n if (value === 'start') {\n localizeableValue = [_left, _right];\n } else if (value === 'end') {\n localizeableValue = [_right, _left];\n }\n }\n // BiDi flip properties\n var propPolyfill = PROPERTIES_I18N[srcProp];\n if (propPolyfill != null) {\n var ltr = atomicCompile(srcProp, propPolyfill, value);\n var rtl = atomicCompile(srcProp, PROPERTIES_FLIP[propPolyfill], value);\n localizeableValue = [ltr, rtl];\n }\n // BiDi flip transitionProperty value\n if (srcProp === 'transitionProperty') {\n var values = Array.isArray(value) ? value : [value];\n var polyfillIndices = [];\n for (var i = 0; i < values.length; i++) {\n var val = values[i];\n if (typeof val === 'string' && PROPERTIES_I18N[val] != null) {\n polyfillIndices.push(i);\n }\n }\n if (polyfillIndices.length > 0) {\n var ltrPolyfillValues = [...values];\n var rtlPolyfillValues = [...values];\n polyfillIndices.forEach(i => {\n var ltrVal = ltrPolyfillValues[i];\n if (typeof ltrVal === 'string') {\n var ltrPolyfill = PROPERTIES_I18N[ltrVal];\n var rtlPolyfill = PROPERTIES_FLIP[ltrPolyfill];\n ltrPolyfillValues[i] = ltrPolyfill;\n rtlPolyfillValues[i] = rtlPolyfill;\n var _ltr = atomicCompile(srcProp, srcProp, ltrPolyfillValues);\n var _rtl = atomicCompile(srcProp, srcProp, rtlPolyfillValues);\n localizeableValue = [_ltr, _rtl];\n }\n });\n }\n }\n if (localizeableValue == null) {\n localizeableValue = atomicCompile(srcProp, srcProp, value);\n } else {\n compiledStyle['$$css$localize'] = true;\n }\n compiledStyle[srcProp] = localizeableValue;\n }\n });\n return [compiledStyle, compiledRules];\n}\n\n/**\n * Compile simple style object to classic CSS rules.\n * No support for 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\nexport function classic(style, name) {\n var compiledStyle = {\n $$css: true\n };\n var compiledRules = [];\n var animationKeyframes = style.animationKeyframes,\n rest = _objectWithoutPropertiesLoose(style, _excluded);\n var identifier = createIdentifier('css', name, JSON.stringify(style));\n var selector = \".\" + identifier;\n var animationName;\n if (animationKeyframes != null) {\n var _processKeyframesValu = processKeyframesValue(animationKeyframes),\n animationNames = _processKeyframesValu[0],\n keyframesRules = _processKeyframesValu[1];\n animationName = animationNames.join(',');\n compiledRules.push(...keyframesRules);\n }\n var block = createDeclarationBlock(_objectSpread(_objectSpread({}, rest), {}, {\n animationName\n }));\n compiledRules.push(\"\" + selector + block);\n compiledStyle[identifier] = identifier;\n return [compiledStyle, [[compiledRules, classicGroup]]];\n}\n\n/**\n * Compile simple style object to inline DOM styles.\n * No support for 'animationKeyframes', 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\nexport function inline(originalStyle, isRTL) {\n var style = originalStyle || emptyObject;\n var frozenProps = {};\n var nextStyle = {};\n var _loop = function _loop() {\n var originalValue = style[originalProp];\n var prop = originalProp;\n var value = originalValue;\n if (!Object.prototype.hasOwnProperty.call(style, originalProp) || originalValue == null) {\n return \"continue\";\n }\n\n // BiDi flip values\n if (PROPERTIES_VALUE.indexOf(originalProp) > -1) {\n if (originalValue === 'start') {\n value = isRTL ? 'right' : 'left';\n } else if (originalValue === 'end') {\n value = isRTL ? 'left' : 'right';\n }\n }\n // BiDi flip properties\n var propPolyfill = PROPERTIES_I18N[originalProp];\n if (propPolyfill != null) {\n prop = isRTL ? PROPERTIES_FLIP[propPolyfill] : propPolyfill;\n }\n // BiDi flip transitionProperty value\n if (originalProp === 'transitionProperty') {\n // $FlowFixMe\n var originalValues = Array.isArray(originalValue) ? originalValue : [originalValue];\n originalValues.forEach((val, i) => {\n if (typeof val === 'string') {\n var valuePolyfill = PROPERTIES_I18N[val];\n if (valuePolyfill != null) {\n originalValues[i] = isRTL ? PROPERTIES_FLIP[valuePolyfill] : valuePolyfill;\n value = originalValues.join(' ');\n }\n }\n });\n }\n\n // Create finalized style\n if (!frozenProps[prop]) {\n nextStyle[prop] = value;\n }\n if (prop === originalProp) {\n frozenProps[prop] = true;\n }\n\n // if (PROPERTIES_I18N.hasOwnProperty(originalProp)) {\n // frozenProps[prop] = true;\n //}\n };\n for (var originalProp in style) {\n var _ret = _loop();\n if (_ret === \"continue\") continue;\n }\n return createReactDOMStyle(nextStyle, true);\n}\n\n/**\n * Create a value string that normalizes different input values with a common\n * output.\n */\nexport function stringifyValueWithProperty(value, property) {\n // e.g., 0 => '0px', 'black' => 'rgba(0,0,0,1)'\n var normalizedValue = normalizeValueWithProperty(value, property);\n return typeof normalizedValue !== 'string' ? JSON.stringify(normalizedValue || '') : normalizedValue;\n}\n\n/**\n * Create the Atomic CSS rules needed for a given StyleSheet rule.\n * Translates StyleSheet declarations to CSS.\n */\nfunction createAtomicRules(identifier, property, value) {\n var rules = [];\n var selector = \".\" + identifier;\n\n // Handle non-standard properties and object values that require multiple\n // CSS rules to be created.\n switch (property) {\n case 'animationKeyframes':\n {\n var _processKeyframesValu2 = processKeyframesValue(value),\n animationNames = _processKeyframesValu2[0],\n keyframesRules = _processKeyframesValu2[1];\n var block = createDeclarationBlock({\n animationName: animationNames.join(',')\n });\n rules.push(\"\" + selector + block, ...keyframesRules);\n break;\n }\n\n // Equivalent to using '::placeholder'\n case 'placeholderTextColor':\n {\n var _block = createDeclarationBlock({\n color: value,\n opacity: 1\n });\n rules.push(selector + \"::-webkit-input-placeholder\" + _block, selector + \"::-moz-placeholder\" + _block, selector + \":-ms-input-placeholder\" + _block, selector + \"::placeholder\" + _block);\n break;\n }\n\n // Polyfill for additional 'pointer-events' values\n // See d13f78622b233a0afc0c7a200c0a0792c8ca9e58\n case 'pointerEvents':\n {\n var finalValue = value;\n if (value === 'auto' || value === 'box-only') {\n finalValue = 'auto!important';\n if (value === 'box-only') {\n var _block2 = createDeclarationBlock({\n pointerEvents: 'none'\n });\n rules.push(selector + \">*\" + _block2);\n }\n } else if (value === 'none' || value === 'box-none') {\n finalValue = 'none!important';\n if (value === 'box-none') {\n var _block3 = createDeclarationBlock({\n pointerEvents: 'auto'\n });\n rules.push(selector + \">*\" + _block3);\n }\n }\n var _block4 = createDeclarationBlock({\n pointerEvents: finalValue\n });\n rules.push(\"\" + selector + _block4);\n break;\n }\n\n // Polyfill for draft spec\n // https://drafts.csswg.org/css-scrollbars-1/\n case 'scrollbarWidth':\n {\n if (value === 'none') {\n rules.push(selector + \"::-webkit-scrollbar{display:none}\");\n }\n var _block5 = createDeclarationBlock({\n scrollbarWidth: value\n });\n rules.push(\"\" + selector + _block5);\n break;\n }\n default:\n {\n var _block6 = createDeclarationBlock({\n [property]: value\n });\n rules.push(\"\" + selector + _block6);\n break;\n }\n }\n return rules;\n}\n\n/**\n * Creates a CSS declaration block from a StyleSheet object.\n */\nfunction createDeclarationBlock(style) {\n var domStyle = prefixStyles(createReactDOMStyle(style));\n var declarationsString = Object.keys(domStyle).map(property => {\n var value = domStyle[property];\n var prop = hyphenateStyleName(property);\n // The prefixer may return an array of values:\n // { display: [ '-webkit-flex', 'flex' ] }\n // to represent \"fallback\" declarations\n // { display: -webkit-flex; display: flex; }\n if (Array.isArray(value)) {\n return value.map(v => prop + \":\" + v).join(';');\n } else {\n return prop + \":\" + value;\n }\n })\n // Once properties are hyphenated, this will put the vendor\n // prefixed and short-form properties first in the list.\n .sort().join(';');\n return \"{\" + declarationsString + \";}\";\n}\n\n/**\n * An identifier is associated with a unique set of styles.\n */\nfunction createIdentifier(prefix, name, key) {\n var hashedString = hash(name + key);\n return process.env.NODE_ENV !== 'production' ? prefix + \"-\" + name + \"-\" + hashedString : prefix + \"-\" + hashedString;\n}\n\n/**\n * Create individual CSS keyframes rules.\n */\nfunction createKeyframes(keyframes) {\n var prefixes = ['-webkit-', ''];\n var identifier = createIdentifier('r', 'animation', JSON.stringify(keyframes));\n var steps = '{' + Object.keys(keyframes).map(stepName => {\n var rule = keyframes[stepName];\n var block = createDeclarationBlock(rule);\n return \"\" + stepName + block;\n }).join('') + '}';\n var rules = prefixes.map(prefix => {\n return \"@\" + prefix + \"keyframes \" + identifier + steps;\n });\n return [identifier, rules];\n}\n\n/**\n * Create CSS keyframes rules and names from a StyleSheet keyframes object.\n */\nfunction processKeyframesValue(keyframesValue) {\n if (typeof keyframesValue === 'number') {\n throw new Error(\"Invalid CSS keyframes type: \" + typeof keyframesValue);\n }\n var animationNames = [];\n var rules = [];\n var value = Array.isArray(keyframesValue) ? keyframesValue : [keyframesValue];\n value.forEach(keyframes => {\n if (typeof keyframes === 'string') {\n // Support external animation libraries (identifiers only)\n animationNames.push(keyframes);\n } else {\n // Create rules for each of the keyframes\n var _createKeyframes = createKeyframes(keyframes),\n identifier = _createKeyframes[0],\n keyframesRules = _createKeyframes[1];\n animationNames.push(identifier);\n rules.push(...keyframesRules);\n }\n });\n return [animationNames, rules];\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport canUseDOM from '../../../modules/canUseDom';\n\n// $FlowFixMe: HTMLStyleElement is incorrectly typed - https://github.com/facebook/flow/issues/2696\nexport default function createCSSStyleSheet(id, rootNode, textContent) {\n if (canUseDOM) {\n var root = rootNode != null ? rootNode : document;\n var element = root.getElementById(id);\n if (element == null) {\n element = document.createElement('style');\n element.setAttribute('id', id);\n if (typeof textContent === 'string') {\n element.appendChild(document.createTextNode(textContent));\n }\n if (root instanceof ShadowRoot) {\n root.insertBefore(element, root.firstChild);\n } else {\n var head = root.head;\n if (head) {\n head.insertBefore(element, head.firstChild);\n }\n }\n }\n // $FlowFixMe: HTMLElement is incorrectly typed\n return element.sheet;\n } else {\n return null;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nvar slice = Array.prototype.slice;\n\n/**\n * Order-based insertion of CSS.\n *\n * Each rule is associated with a numerically defined group.\n * Groups are ordered within the style sheet according to their number, with the\n * lowest first.\n *\n * Groups are implemented using marker rules. The selector of the first rule of\n * each group is used only to encode the group number for hydration. An\n * alternative implementation could rely on CSSMediaRule, allowing groups to be\n * treated as a sub-sheet, but the Edge implementation of CSSMediaRule is\n * broken.\n * https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule\n * https://gist.github.com/necolas/aa0c37846ad6bd3b05b727b959e82674\n */\nexport default function createOrderedCSSStyleSheet(sheet) {\n var groups = {};\n var selectors = {};\n\n /**\n * Hydrate approximate record from any existing rules in the sheet.\n */\n if (sheet != null) {\n var group;\n slice.call(sheet.cssRules).forEach((cssRule, i) => {\n var cssText = cssRule.cssText;\n // Create record of existing selectors and rules\n if (cssText.indexOf('stylesheet-group') > -1) {\n group = decodeGroupRule(cssRule);\n groups[group] = {\n start: i,\n rules: [cssText]\n };\n } else {\n var selectorText = getSelectorText(cssText);\n if (selectorText != null) {\n selectors[selectorText] = true;\n groups[group].rules.push(cssText);\n }\n }\n });\n }\n function sheetInsert(sheet, group, text) {\n var orderedGroups = getOrderedGroups(groups);\n var groupIndex = orderedGroups.indexOf(group);\n var nextGroupIndex = groupIndex + 1;\n var nextGroup = orderedGroups[nextGroupIndex];\n // Insert rule before the next group, or at the end of the stylesheet\n var position = nextGroup != null && groups[nextGroup].start != null ? groups[nextGroup].start : sheet.cssRules.length;\n var isInserted = insertRuleAt(sheet, text, position);\n if (isInserted) {\n // Set the starting index of the new group\n if (groups[group].start == null) {\n groups[group].start = position;\n }\n // Increment the starting index of all subsequent groups\n for (var i = nextGroupIndex; i < orderedGroups.length; i += 1) {\n var groupNumber = orderedGroups[i];\n var previousStart = groups[groupNumber].start || 0;\n groups[groupNumber].start = previousStart + 1;\n }\n }\n return isInserted;\n }\n var OrderedCSSStyleSheet = {\n /**\n * The textContent of the style sheet.\n */\n getTextContent() {\n return getOrderedGroups(groups).map(group => {\n var rules = groups[group].rules;\n // Sorting provides deterministic order of styles in group for\n // build-time extraction of the style sheet.\n var marker = rules.shift();\n rules.sort();\n rules.unshift(marker);\n return rules.join('\\n');\n }).join('\\n');\n },\n /**\n * Insert a rule into the style sheet\n */\n insert(cssText, groupValue) {\n var group = Number(groupValue);\n\n // Create a new group.\n if (groups[group] == null) {\n var markerRule = encodeGroupRule(group);\n // Create the internal record.\n groups[group] = {\n start: null,\n rules: [markerRule]\n };\n // Update CSSOM.\n if (sheet != null) {\n sheetInsert(sheet, group, markerRule);\n }\n }\n\n // selectorText is more reliable than cssText for insertion checks. The\n // browser excludes vendor-prefixed properties and rewrites certain values\n // making cssText more likely to be different from what was inserted.\n var selectorText = getSelectorText(cssText);\n if (selectorText != null && selectors[selectorText] == null) {\n // Update the internal records.\n selectors[selectorText] = true;\n groups[group].rules.push(cssText);\n // Update CSSOM.\n if (sheet != null) {\n var isInserted = sheetInsert(sheet, group, cssText);\n if (!isInserted) {\n // Revert internal record change if a rule was rejected (e.g.,\n // unrecognized pseudo-selector)\n groups[group].rules.pop();\n }\n }\n }\n }\n };\n return OrderedCSSStyleSheet;\n}\n\n/**\n * Helper functions\n */\n\nfunction encodeGroupRule(group) {\n return \"[stylesheet-group=\\\"\" + group + \"\\\"]{}\";\n}\nvar groupPattern = /[\"']/g;\nfunction decodeGroupRule(cssRule) {\n return Number(cssRule.selectorText.split(groupPattern)[1]);\n}\nfunction getOrderedGroups(obj) {\n return Object.keys(obj).map(Number).sort((a, b) => a > b ? 1 : -1);\n}\nvar selectorPattern = /\\s*([,])\\s*/g;\nfunction getSelectorText(cssText) {\n var selector = cssText.split('{')[0].trim();\n return selector !== '' ? selector.replace(selectorPattern, '$1') : null;\n}\nfunction insertRuleAt(root, cssText, position) {\n try {\n // $FlowFixMe: Flow is missing CSSOM types needed to type 'root'.\n root.insertRule(cssText, position);\n return true;\n } catch (e) {\n // JSDOM doesn't support `CSSSMediaRule#insertRule`.\n // Also ignore errors that occur from attempting to insert vendor-prefixed selectors.\n return false;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport canUseDOM from '../../../modules/canUseDom';\nimport createCSSStyleSheet from './createCSSStyleSheet';\nimport createOrderedCSSStyleSheet from './createOrderedCSSStyleSheet';\nvar defaultId = 'react-native-stylesheet';\nvar roots = new WeakMap();\nvar sheets = [];\nvar initialRules = [\n// minimal top-level reset\n'html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}', 'body{margin:0;}',\n// minimal form pseudo-element reset\n'button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}', 'input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}'];\nexport function createSheet(root, id) {\n if (id === void 0) {\n id = defaultId;\n }\n var sheet;\n if (canUseDOM) {\n var rootNode = root != null ? root.getRootNode() : document;\n // Create the initial style sheet\n if (sheets.length === 0) {\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id));\n initialRules.forEach(rule => {\n sheet.insert(rule, 0);\n });\n roots.set(rootNode, sheets.length);\n sheets.push(sheet);\n } else {\n var index = roots.get(rootNode);\n if (index == null) {\n var initialSheet = sheets[0];\n // If we're creating a new sheet, populate it with existing styles\n var textContent = initialSheet != null ? initialSheet.getTextContent() : '';\n // Cast rootNode to 'any' because Flow types for getRootNode are wrong\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id, rootNode, textContent));\n roots.set(rootNode, sheets.length);\n sheets.push(sheet);\n } else {\n sheet = sheets[index];\n }\n }\n } else {\n // Create the initial style sheet\n if (sheets.length === 0) {\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id));\n initialRules.forEach(rule => {\n sheet.insert(rule, 0);\n });\n sheets.push(sheet);\n } else {\n sheet = sheets[0];\n }\n }\n return {\n getTextContent() {\n return sheet.getTextContent();\n },\n id,\n insert(cssText, groupValue) {\n sheets.forEach(s => {\n s.insert(cssText, groupValue);\n });\n }\n };\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nvar warnedKeys = {};\n\n/**\n * A simple function that prints a warning message once per session.\n *\n * @param {string} key - The key used to ensure the message is printed once.\n * This should be unique to the callsite.\n * @param {string} message - The message to print\n */\nexport function warnOnce(key, message) {\n if (process.env.NODE_ENV !== 'production') {\n if (warnedKeys[key]) {\n return;\n }\n console.warn(message);\n warnedKeys[key] = true;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport normalizeColor from './compiler/normalizeColor';\nimport normalizeValueWithProperty from './compiler/normalizeValueWithProperty';\nimport { warnOnce } from '../../modules/warnOnce';\nvar emptyObject = {};\n\n/**\n * Shadows\n */\n\nvar defaultOffset = {\n height: 0,\n width: 0\n};\nexport var createBoxShadowValue = style => {\n var shadowColor = style.shadowColor,\n shadowOffset = style.shadowOffset,\n shadowOpacity = style.shadowOpacity,\n shadowRadius = style.shadowRadius;\n var _ref = shadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(shadowRadius || 0);\n var color = normalizeColor(shadowColor || 'black', shadowOpacity);\n if (color != null && offsetX != null && offsetY != null && blurRadius != null) {\n return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\nexport var createTextShadowValue = style => {\n var textShadowColor = style.textShadowColor,\n textShadowOffset = style.textShadowOffset,\n textShadowRadius = style.textShadowRadius;\n var _ref2 = textShadowOffset || defaultOffset,\n height = _ref2.height,\n width = _ref2.width;\n var radius = textShadowRadius || 0;\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(radius);\n var color = normalizeValueWithProperty(textShadowColor, 'textShadowColor');\n if (color && (height !== 0 || width !== 0 || radius !== 0) && offsetX != null && offsetY != null && blurRadius != null) {\n return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\n\n// { scale: 2 } => 'scale(2)'\n// { translateX: 20 } => 'translateX(20px)'\n// { matrix: [1,2,3,4,5,6] } => 'matrix(1,2,3,4,5,6)'\nvar mapTransform = transform => {\n var type = Object.keys(transform)[0];\n var value = transform[type];\n if (type === 'matrix' || type === 'matrix3d') {\n return type + \"(\" + value.join(',') + \")\";\n } else {\n var normalizedValue = normalizeValueWithProperty(value, type);\n return type + \"(\" + normalizedValue + \")\";\n }\n};\nexport var createTransformValue = value => {\n return value.map(mapTransform).join(' ');\n};\nvar PROPERTIES_STANDARD = {\n borderBottomEndRadius: 'borderEndEndRadius',\n borderBottomStartRadius: 'borderEndStartRadius',\n borderTopEndRadius: 'borderStartEndRadius',\n borderTopStartRadius: 'borderStartStartRadius',\n borderEndColor: 'borderInlineEndColor',\n borderEndStyle: 'borderInlineEndStyle',\n borderEndWidth: 'borderInlineEndWidth',\n borderStartColor: 'borderInlineStartColor',\n borderStartStyle: 'borderInlineStartStyle',\n borderStartWidth: 'borderInlineStartWidth',\n end: 'insetInlineEnd',\n marginEnd: 'marginInlineEnd',\n marginHorizontal: 'marginInline',\n marginStart: 'marginInlineStart',\n marginVertical: 'marginBlock',\n paddingEnd: 'paddingInlineEnd',\n paddingHorizontal: 'paddingInline',\n paddingStart: 'paddingInlineStart',\n paddingVertical: 'paddingBlock',\n start: 'insetInlineStart'\n};\nvar ignoredProps = {\n elevation: true,\n overlayColor: true,\n resizeMode: true,\n tintColor: true\n};\n\n/**\n * Preprocess styles\n */\nexport var preprocess = function preprocess(originalStyle, options) {\n if (options === void 0) {\n options = {};\n }\n var style = originalStyle || emptyObject;\n var nextStyle = {};\n\n // Convert shadow styles\n if (options.shadow === true, style.shadowColor != null || style.shadowOffset != null || style.shadowOpacity != null || style.shadowRadius != null) {\n warnOnce('shadowStyles', \"\\\"shadow*\\\" style props are deprecated. Use \\\"boxShadow\\\".\");\n var boxShadowValue = createBoxShadowValue(style);\n if (boxShadowValue != null && nextStyle.boxShadow == null) {\n var boxShadow = style.boxShadow;\n var value = boxShadow ? boxShadow + \", \" + boxShadowValue : boxShadowValue;\n nextStyle.boxShadow = value;\n }\n }\n\n // Convert text shadow styles\n if (options.textShadow === true, style.textShadowColor != null || style.textShadowOffset != null || style.textShadowRadius != null) {\n warnOnce('textShadowStyles', \"\\\"textShadow*\\\" style props are deprecated. Use \\\"textShadow\\\".\");\n var textShadowValue = createTextShadowValue(style);\n if (textShadowValue != null && nextStyle.textShadow == null) {\n var textShadow = style.textShadow;\n var _value = textShadow ? textShadow + \", \" + textShadowValue : textShadowValue;\n nextStyle.textShadow = _value;\n }\n }\n for (var originalProp in style) {\n if (\n // Ignore some React Native styles\n ignoredProps[originalProp] != null || originalProp === 'shadowColor' || originalProp === 'shadowOffset' || originalProp === 'shadowOpacity' || originalProp === 'shadowRadius' || originalProp === 'textShadowColor' || originalProp === 'textShadowOffset' || originalProp === 'textShadowRadius') {\n continue;\n }\n var originalValue = style[originalProp];\n var prop = PROPERTIES_STANDARD[originalProp] || originalProp;\n var _value2 = originalValue;\n if (!Object.prototype.hasOwnProperty.call(style, originalProp) || prop !== originalProp && style[prop] != null) {\n continue;\n }\n if (prop === 'aspectRatio' && typeof _value2 === 'number') {\n nextStyle[prop] = _value2.toString();\n } else if (prop === 'fontVariant') {\n if (Array.isArray(_value2) && _value2.length > 0) {\n warnOnce('fontVariant', '\"fontVariant\" style array value is deprecated. Use space-separated values.');\n _value2 = _value2.join(' ');\n }\n nextStyle[prop] = _value2;\n } else if (prop === 'textAlignVertical') {\n warnOnce('textAlignVertical', '\"textAlignVertical\" style is deprecated. Use \"verticalAlign\".');\n if (style.verticalAlign == null) {\n nextStyle.verticalAlign = _value2 === 'center' ? 'middle' : _value2;\n }\n } else if (prop === 'transform') {\n if (Array.isArray(_value2)) {\n _value2 = createTransformValue(_value2);\n }\n nextStyle.transform = _value2;\n } else {\n nextStyle[prop] = _value2;\n }\n }\n\n // $FlowIgnore\n return nextStyle;\n};\nexport default preprocess;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"writingDirection\"];\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport { atomic, classic, inline } from './compiler';\nimport { createSheet } from './dom';\nimport { localizeStyle } from 'styleq/transform-localize-style';\nimport { preprocess } from './preprocess';\nimport { styleq } from 'styleq';\nimport { validate } from './validate';\nimport canUseDOM from '../../modules/canUseDom';\nvar staticStyleMap = new WeakMap();\nvar sheet = createSheet();\nvar defaultPreprocessOptions = {\n shadow: true,\n textShadow: true\n};\nfunction customStyleq(styles, options) {\n if (options === void 0) {\n options = {};\n }\n var _options = options,\n writingDirection = _options.writingDirection,\n preprocessOptions = _objectWithoutPropertiesLoose(_options, _excluded);\n var isRTL = writingDirection === 'rtl';\n return styleq.factory({\n transform(style) {\n var compiledStyle = staticStyleMap.get(style);\n if (compiledStyle != null) {\n return localizeStyle(compiledStyle, isRTL);\n }\n return preprocess(style, _objectSpread(_objectSpread({}, defaultPreprocessOptions), preprocessOptions));\n }\n })(styles);\n}\nfunction insertRules(compiledOrderedRules) {\n compiledOrderedRules.forEach(_ref => {\n var rules = _ref[0],\n order = _ref[1];\n if (sheet != null) {\n rules.forEach(rule => {\n sheet.insert(rule, order);\n });\n }\n });\n}\nfunction compileAndInsertAtomic(style) {\n var _atomic = atomic(preprocess(style, defaultPreprocessOptions)),\n compiledStyle = _atomic[0],\n compiledOrderedRules = _atomic[1];\n insertRules(compiledOrderedRules);\n return compiledStyle;\n}\nfunction compileAndInsertReset(style, key) {\n var _classic = classic(style, key),\n compiledStyle = _classic[0],\n compiledOrderedRules = _classic[1];\n insertRules(compiledOrderedRules);\n return compiledStyle;\n}\n\n/* ----- API ----- */\n\nvar absoluteFillObject = {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n};\nvar absoluteFill = create({\n x: _objectSpread({}, absoluteFillObject)\n}).x;\n\n/**\n * create\n */\nfunction create(styles) {\n Object.keys(styles).forEach(key => {\n var styleObj = styles[key];\n // Only compile at runtime if the style is not already compiled\n if (styleObj != null && styleObj.$$css !== true) {\n var compiledStyles;\n if (key.indexOf('$raw') > -1) {\n compiledStyles = compileAndInsertReset(styleObj, key.split('$raw')[0]);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n validate(styleObj);\n styles[key] = Object.freeze(styleObj);\n }\n compiledStyles = compileAndInsertAtomic(styleObj);\n }\n staticStyleMap.set(styleObj, compiledStyles);\n }\n });\n return styles;\n}\n\n/**\n * compose\n */\nfunction compose(style1, style2) {\n if (process.env.NODE_ENV !== 'production') {\n /* eslint-disable prefer-rest-params */\n var len = arguments.length;\n if (len > 2) {\n var readableStyles = [...arguments].map(a => flatten(a));\n throw new Error(\"StyleSheet.compose() only accepts 2 arguments, received \" + len + \": \" + JSON.stringify(readableStyles));\n }\n /* eslint-enable prefer-rest-params */\n console.warn('StyleSheet.compose(a, b) is deprecated; use array syntax, i.e., [a,b].');\n }\n return [style1, style2];\n}\n\n/**\n * flatten\n */\nfunction flatten() {\n for (var _len = arguments.length, styles = new Array(_len), _key = 0; _key < _len; _key++) {\n styles[_key] = arguments[_key];\n }\n var flatArray = styles.flat(Infinity);\n var result = {};\n for (var i = 0; i < flatArray.length; i++) {\n var style = flatArray[i];\n if (style != null && typeof style === 'object') {\n // $FlowFixMe\n Object.assign(result, style);\n }\n }\n return result;\n}\n\n/**\n * getSheet\n */\nfunction getSheet() {\n return {\n id: sheet.id,\n textContent: sheet.getTextContent()\n };\n}\n\n/**\n * resolve\n */\n\nfunction StyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n var isRTL = options.writingDirection === 'rtl';\n var styleProps = customStyleq(styles, options);\n if (Array.isArray(styleProps) && styleProps[1] != null) {\n styleProps[1] = inline(styleProps[1], isRTL);\n }\n return styleProps;\n}\nStyleSheet.absoluteFill = absoluteFill;\nStyleSheet.absoluteFillObject = absoluteFillObject;\nStyleSheet.create = create;\nStyleSheet.compose = compose;\nStyleSheet.flatten = flatten;\nStyleSheet.getSheet = getSheet;\n// `hairlineWidth` is not implemented using screen density as browsers may\n// round sub-pixel values down to `0`, causing the line not to be rendered.\nStyleSheet.hairlineWidth = 1;\nif (canUseDOM && window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.resolveRNStyle = StyleSheet.flatten;\n}\nvar stylesheet = StyleSheet;\nexport default stylesheet;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"aria-activedescendant\", \"accessibilityActiveDescendant\", \"aria-atomic\", \"accessibilityAtomic\", \"aria-autocomplete\", \"accessibilityAutoComplete\", \"aria-busy\", \"accessibilityBusy\", \"aria-checked\", \"accessibilityChecked\", \"aria-colcount\", \"accessibilityColumnCount\", \"aria-colindex\", \"accessibilityColumnIndex\", \"aria-colspan\", \"accessibilityColumnSpan\", \"aria-controls\", \"accessibilityControls\", \"aria-current\", \"accessibilityCurrent\", \"aria-describedby\", \"accessibilityDescribedBy\", \"aria-details\", \"accessibilityDetails\", \"aria-disabled\", \"accessibilityDisabled\", \"aria-errormessage\", \"accessibilityErrorMessage\", \"aria-expanded\", \"accessibilityExpanded\", \"aria-flowto\", \"accessibilityFlowTo\", \"aria-haspopup\", \"accessibilityHasPopup\", \"aria-hidden\", \"accessibilityHidden\", \"aria-invalid\", \"accessibilityInvalid\", \"aria-keyshortcuts\", \"accessibilityKeyShortcuts\", \"aria-label\", \"accessibilityLabel\", \"aria-labelledby\", \"accessibilityLabelledBy\", \"aria-level\", \"accessibilityLevel\", \"aria-live\", \"accessibilityLiveRegion\", \"aria-modal\", \"accessibilityModal\", \"aria-multiline\", \"accessibilityMultiline\", \"aria-multiselectable\", \"accessibilityMultiSelectable\", \"aria-orientation\", \"accessibilityOrientation\", \"aria-owns\", \"accessibilityOwns\", \"aria-placeholder\", \"accessibilityPlaceholder\", \"aria-posinset\", \"accessibilityPosInSet\", \"aria-pressed\", \"accessibilityPressed\", \"aria-readonly\", \"accessibilityReadOnly\", \"aria-required\", \"accessibilityRequired\", \"role\", \"accessibilityRole\", \"aria-roledescription\", \"accessibilityRoleDescription\", \"aria-rowcount\", \"accessibilityRowCount\", \"aria-rowindex\", \"accessibilityRowIndex\", \"aria-rowspan\", \"accessibilityRowSpan\", \"aria-selected\", \"accessibilitySelected\", \"aria-setsize\", \"accessibilitySetSize\", \"aria-sort\", \"accessibilitySort\", \"aria-valuemax\", \"accessibilityValueMax\", \"aria-valuemin\", \"accessibilityValueMin\", \"aria-valuenow\", \"accessibilityValueNow\", \"aria-valuetext\", \"accessibilityValueText\", \"dataSet\", \"focusable\", \"id\", \"nativeID\", \"pointerEvents\", \"style\", \"tabIndex\", \"testID\"];\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport AccessibilityUtil from '../AccessibilityUtil';\nimport StyleSheet from '../../exports/StyleSheet';\nimport { warnOnce } from '../warnOnce';\nvar emptyObject = {};\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar uppercasePattern = /[A-Z]/g;\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\nfunction hyphenateString(str) {\n return str.replace(uppercasePattern, toHyphenLower);\n}\nfunction processIDRefList(idRefList) {\n return isArray(idRefList) ? idRefList.join(' ') : idRefList;\n}\nvar pointerEventsStyles = StyleSheet.create({\n auto: {\n pointerEvents: 'auto'\n },\n 'box-none': {\n pointerEvents: 'box-none'\n },\n 'box-only': {\n pointerEvents: 'box-only'\n },\n none: {\n pointerEvents: 'none'\n }\n});\nvar createDOMProps = (elementType, props, options) => {\n if (!props) {\n props = emptyObject;\n }\n var _props = props,\n ariaActiveDescendant = _props['aria-activedescendant'],\n accessibilityActiveDescendant = _props.accessibilityActiveDescendant,\n ariaAtomic = _props['aria-atomic'],\n accessibilityAtomic = _props.accessibilityAtomic,\n ariaAutoComplete = _props['aria-autocomplete'],\n accessibilityAutoComplete = _props.accessibilityAutoComplete,\n ariaBusy = _props['aria-busy'],\n accessibilityBusy = _props.accessibilityBusy,\n ariaChecked = _props['aria-checked'],\n accessibilityChecked = _props.accessibilityChecked,\n ariaColumnCount = _props['aria-colcount'],\n accessibilityColumnCount = _props.accessibilityColumnCount,\n ariaColumnIndex = _props['aria-colindex'],\n accessibilityColumnIndex = _props.accessibilityColumnIndex,\n ariaColumnSpan = _props['aria-colspan'],\n accessibilityColumnSpan = _props.accessibilityColumnSpan,\n ariaControls = _props['aria-controls'],\n accessibilityControls = _props.accessibilityControls,\n ariaCurrent = _props['aria-current'],\n accessibilityCurrent = _props.accessibilityCurrent,\n ariaDescribedBy = _props['aria-describedby'],\n accessibilityDescribedBy = _props.accessibilityDescribedBy,\n ariaDetails = _props['aria-details'],\n accessibilityDetails = _props.accessibilityDetails,\n ariaDisabled = _props['aria-disabled'],\n accessibilityDisabled = _props.accessibilityDisabled,\n ariaErrorMessage = _props['aria-errormessage'],\n accessibilityErrorMessage = _props.accessibilityErrorMessage,\n ariaExpanded = _props['aria-expanded'],\n accessibilityExpanded = _props.accessibilityExpanded,\n ariaFlowTo = _props['aria-flowto'],\n accessibilityFlowTo = _props.accessibilityFlowTo,\n ariaHasPopup = _props['aria-haspopup'],\n accessibilityHasPopup = _props.accessibilityHasPopup,\n ariaHidden = _props['aria-hidden'],\n accessibilityHidden = _props.accessibilityHidden,\n ariaInvalid = _props['aria-invalid'],\n accessibilityInvalid = _props.accessibilityInvalid,\n ariaKeyShortcuts = _props['aria-keyshortcuts'],\n accessibilityKeyShortcuts = _props.accessibilityKeyShortcuts,\n ariaLabel = _props['aria-label'],\n accessibilityLabel = _props.accessibilityLabel,\n ariaLabelledBy = _props['aria-labelledby'],\n accessibilityLabelledBy = _props.accessibilityLabelledBy,\n ariaLevel = _props['aria-level'],\n accessibilityLevel = _props.accessibilityLevel,\n ariaLive = _props['aria-live'],\n accessibilityLiveRegion = _props.accessibilityLiveRegion,\n ariaModal = _props['aria-modal'],\n accessibilityModal = _props.accessibilityModal,\n ariaMultiline = _props['aria-multiline'],\n accessibilityMultiline = _props.accessibilityMultiline,\n ariaMultiSelectable = _props['aria-multiselectable'],\n accessibilityMultiSelectable = _props.accessibilityMultiSelectable,\n ariaOrientation = _props['aria-orientation'],\n accessibilityOrientation = _props.accessibilityOrientation,\n ariaOwns = _props['aria-owns'],\n accessibilityOwns = _props.accessibilityOwns,\n ariaPlaceholder = _props['aria-placeholder'],\n accessibilityPlaceholder = _props.accessibilityPlaceholder,\n ariaPosInSet = _props['aria-posinset'],\n accessibilityPosInSet = _props.accessibilityPosInSet,\n ariaPressed = _props['aria-pressed'],\n accessibilityPressed = _props.accessibilityPressed,\n ariaReadOnly = _props['aria-readonly'],\n accessibilityReadOnly = _props.accessibilityReadOnly,\n ariaRequired = _props['aria-required'],\n accessibilityRequired = _props.accessibilityRequired,\n ariaRole = _props.role,\n accessibilityRole = _props.accessibilityRole,\n ariaRoleDescription = _props['aria-roledescription'],\n accessibilityRoleDescription = _props.accessibilityRoleDescription,\n ariaRowCount = _props['aria-rowcount'],\n accessibilityRowCount = _props.accessibilityRowCount,\n ariaRowIndex = _props['aria-rowindex'],\n accessibilityRowIndex = _props.accessibilityRowIndex,\n ariaRowSpan = _props['aria-rowspan'],\n accessibilityRowSpan = _props.accessibilityRowSpan,\n ariaSelected = _props['aria-selected'],\n accessibilitySelected = _props.accessibilitySelected,\n ariaSetSize = _props['aria-setsize'],\n accessibilitySetSize = _props.accessibilitySetSize,\n ariaSort = _props['aria-sort'],\n accessibilitySort = _props.accessibilitySort,\n ariaValueMax = _props['aria-valuemax'],\n accessibilityValueMax = _props.accessibilityValueMax,\n ariaValueMin = _props['aria-valuemin'],\n accessibilityValueMin = _props.accessibilityValueMin,\n ariaValueNow = _props['aria-valuenow'],\n accessibilityValueNow = _props.accessibilityValueNow,\n ariaValueText = _props['aria-valuetext'],\n accessibilityValueText = _props.accessibilityValueText,\n dataSet = _props.dataSet,\n focusable = _props.focusable,\n id = _props.id,\n nativeID = _props.nativeID,\n pointerEvents = _props.pointerEvents,\n style = _props.style,\n tabIndex = _props.tabIndex,\n testID = _props.testID,\n domProps = _objectWithoutPropertiesLoose(_props, _excluded);\n if (accessibilityDisabled != null) {\n warnOnce('accessibilityDisabled', \"accessibilityDisabled is deprecated.\");\n }\n var disabled = ariaDisabled || accessibilityDisabled;\n var role = AccessibilityUtil.propsToAriaRole(props);\n\n // ACCESSIBILITY\n if (accessibilityActiveDescendant != null) {\n warnOnce('accessibilityActiveDescendant', \"accessibilityActiveDescendant is deprecated. Use aria-activedescendant.\");\n }\n var _ariaActiveDescendant = ariaActiveDescendant != null ? ariaActiveDescendant : accessibilityActiveDescendant;\n if (_ariaActiveDescendant != null) {\n domProps['aria-activedescendant'] = _ariaActiveDescendant;\n }\n if (accessibilityAtomic != null) {\n warnOnce('accessibilityAtomic', \"accessibilityAtomic is deprecated. Use aria-atomic.\");\n }\n var _ariaAtomic = ariaAtomic != null ? ariaActiveDescendant : accessibilityAtomic;\n if (_ariaAtomic != null) {\n domProps['aria-atomic'] = _ariaAtomic;\n }\n if (accessibilityAutoComplete != null) {\n warnOnce('accessibilityAutoComplete', \"accessibilityAutoComplete is deprecated. Use aria-autocomplete.\");\n }\n var _ariaAutoComplete = ariaAutoComplete != null ? ariaAutoComplete : accessibilityAutoComplete;\n if (_ariaAutoComplete != null) {\n domProps['aria-autocomplete'] = _ariaAutoComplete;\n }\n if (accessibilityBusy != null) {\n warnOnce('accessibilityBusy', \"accessibilityBusy is deprecated. Use aria-busy.\");\n }\n var _ariaBusy = ariaBusy != null ? ariaBusy : accessibilityBusy;\n if (_ariaBusy != null) {\n domProps['aria-busy'] = _ariaBusy;\n }\n if (accessibilityChecked != null) {\n warnOnce('accessibilityChecked', \"accessibilityChecked is deprecated. Use aria-checked.\");\n }\n var _ariaChecked = ariaChecked != null ? ariaChecked : accessibilityChecked;\n if (_ariaChecked != null) {\n domProps['aria-checked'] = _ariaChecked;\n }\n if (accessibilityColumnCount != null) {\n warnOnce('accessibilityColumnCount', \"accessibilityColumnCount is deprecated. Use aria-colcount.\");\n }\n var _ariaColumnCount = ariaColumnCount != null ? ariaColumnCount : accessibilityColumnCount;\n if (_ariaColumnCount != null) {\n domProps['aria-colcount'] = _ariaColumnCount;\n }\n if (accessibilityColumnIndex != null) {\n warnOnce('accessibilityColumnIndex', \"accessibilityColumnIndex is deprecated. Use aria-colindex.\");\n }\n var _ariaColumnIndex = ariaColumnIndex != null ? ariaColumnIndex : accessibilityColumnIndex;\n if (_ariaColumnIndex != null) {\n domProps['aria-colindex'] = _ariaColumnIndex;\n }\n if (accessibilityColumnSpan != null) {\n warnOnce('accessibilityColumnSpan', \"accessibilityColumnSpan is deprecated. Use aria-colspan.\");\n }\n var _ariaColumnSpan = ariaColumnSpan != null ? ariaColumnSpan : accessibilityColumnSpan;\n if (_ariaColumnSpan != null) {\n domProps['aria-colspan'] = _ariaColumnSpan;\n }\n if (accessibilityControls != null) {\n warnOnce('accessibilityControls', \"accessibilityControls is deprecated. Use aria-controls.\");\n }\n var _ariaControls = ariaControls != null ? ariaControls : accessibilityControls;\n if (_ariaControls != null) {\n domProps['aria-controls'] = processIDRefList(_ariaControls);\n }\n if (accessibilityCurrent != null) {\n warnOnce('accessibilityCurrent', \"accessibilityCurrent is deprecated. Use aria-current.\");\n }\n var _ariaCurrent = ariaCurrent != null ? ariaCurrent : accessibilityCurrent;\n if (_ariaCurrent != null) {\n domProps['aria-current'] = _ariaCurrent;\n }\n if (accessibilityDescribedBy != null) {\n warnOnce('accessibilityDescribedBy', \"accessibilityDescribedBy is deprecated. Use aria-describedby.\");\n }\n var _ariaDescribedBy = ariaDescribedBy != null ? ariaDescribedBy : accessibilityDescribedBy;\n if (_ariaDescribedBy != null) {\n domProps['aria-describedby'] = processIDRefList(_ariaDescribedBy);\n }\n if (accessibilityDetails != null) {\n warnOnce('accessibilityDetails', \"accessibilityDetails is deprecated. Use aria-details.\");\n }\n var _ariaDetails = ariaDetails != null ? ariaDetails : accessibilityDetails;\n if (_ariaDetails != null) {\n domProps['aria-details'] = _ariaDetails;\n }\n if (disabled === true) {\n domProps['aria-disabled'] = true;\n // Enhance with native semantics\n if (elementType === 'button' || elementType === 'form' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.disabled = true;\n }\n }\n if (accessibilityErrorMessage != null) {\n warnOnce('accessibilityErrorMessage', \"accessibilityErrorMessage is deprecated. Use aria-errormessage.\");\n }\n var _ariaErrorMessage = ariaErrorMessage != null ? ariaErrorMessage : accessibilityErrorMessage;\n if (_ariaErrorMessage != null) {\n domProps['aria-errormessage'] = _ariaErrorMessage;\n }\n if (accessibilityExpanded != null) {\n warnOnce('accessibilityExpanded', \"accessibilityExpanded is deprecated. Use aria-expanded.\");\n }\n var _ariaExpanded = ariaExpanded != null ? ariaExpanded : accessibilityExpanded;\n if (_ariaExpanded != null) {\n domProps['aria-expanded'] = _ariaExpanded;\n }\n if (accessibilityFlowTo != null) {\n warnOnce('accessibilityFlowTo', \"accessibilityFlowTo is deprecated. Use aria-flowto.\");\n }\n var _ariaFlowTo = ariaFlowTo != null ? ariaFlowTo : accessibilityFlowTo;\n if (_ariaFlowTo != null) {\n domProps['aria-flowto'] = processIDRefList(_ariaFlowTo);\n }\n if (accessibilityHasPopup != null) {\n warnOnce('accessibilityHasPopup', \"accessibilityHasPopup is deprecated. Use aria-haspopup.\");\n }\n var _ariaHasPopup = ariaHasPopup != null ? ariaHasPopup : accessibilityHasPopup;\n if (_ariaHasPopup != null) {\n domProps['aria-haspopup'] = _ariaHasPopup;\n }\n if (accessibilityHidden != null) {\n warnOnce('accessibilityHidden', \"accessibilityHidden is deprecated. Use aria-hidden.\");\n }\n var _ariaHidden = ariaHidden != null ? ariaHidden : accessibilityHidden;\n if (_ariaHidden === true) {\n domProps['aria-hidden'] = _ariaHidden;\n }\n if (accessibilityInvalid != null) {\n warnOnce('accessibilityInvalid', \"accessibilityInvalid is deprecated. Use aria-invalid.\");\n }\n var _ariaInvalid = ariaInvalid != null ? ariaInvalid : accessibilityInvalid;\n if (_ariaInvalid != null) {\n domProps['aria-invalid'] = _ariaInvalid;\n }\n if (accessibilityKeyShortcuts != null) {\n warnOnce('accessibilityKeyShortcuts', \"accessibilityKeyShortcuts is deprecated. Use aria-keyshortcuts.\");\n }\n var _ariaKeyShortcuts = ariaKeyShortcuts != null ? ariaKeyShortcuts : accessibilityKeyShortcuts;\n if (_ariaKeyShortcuts != null) {\n domProps['aria-keyshortcuts'] = processIDRefList(_ariaKeyShortcuts);\n }\n if (accessibilityLabel != null) {\n warnOnce('accessibilityLabel', \"accessibilityLabel is deprecated. Use aria-label.\");\n }\n var _ariaLabel = ariaLabel != null ? ariaLabel : accessibilityLabel;\n if (_ariaLabel != null) {\n domProps['aria-label'] = _ariaLabel;\n }\n if (accessibilityLabelledBy != null) {\n warnOnce('accessibilityLabelledBy', \"accessibilityLabelledBy is deprecated. Use aria-labelledby.\");\n }\n var _ariaLabelledBy = ariaLabelledBy != null ? ariaLabelledBy : accessibilityLabelledBy;\n if (_ariaLabelledBy != null) {\n domProps['aria-labelledby'] = processIDRefList(_ariaLabelledBy);\n }\n if (accessibilityLevel != null) {\n warnOnce('accessibilityLevel', \"accessibilityLevel is deprecated. Use aria-level.\");\n }\n var _ariaLevel = ariaLevel != null ? ariaLevel : accessibilityLevel;\n if (_ariaLevel != null) {\n domProps['aria-level'] = _ariaLevel;\n }\n if (accessibilityLiveRegion != null) {\n warnOnce('accessibilityLiveRegion', \"accessibilityLiveRegion is deprecated. Use aria-live.\");\n }\n var _ariaLive = ariaLive != null ? ariaLive : accessibilityLiveRegion;\n if (_ariaLive != null) {\n domProps['aria-live'] = _ariaLive === 'none' ? 'off' : _ariaLive;\n }\n if (accessibilityModal != null) {\n warnOnce('accessibilityModal', \"accessibilityModal is deprecated. Use aria-modal.\");\n }\n var _ariaModal = ariaModal != null ? ariaModal : accessibilityModal;\n if (_ariaModal != null) {\n domProps['aria-modal'] = _ariaModal;\n }\n if (accessibilityMultiline != null) {\n warnOnce('accessibilityMultiline', \"accessibilityMultiline is deprecated. Use aria-multiline.\");\n }\n var _ariaMultiline = ariaMultiline != null ? ariaMultiline : accessibilityMultiline;\n if (_ariaMultiline != null) {\n domProps['aria-multiline'] = _ariaMultiline;\n }\n if (accessibilityMultiSelectable != null) {\n warnOnce('accessibilityMultiSelectable', \"accessibilityMultiSelectable is deprecated. Use aria-multiselectable.\");\n }\n var _ariaMultiSelectable = ariaMultiSelectable != null ? ariaMultiSelectable : accessibilityMultiSelectable;\n if (_ariaMultiSelectable != null) {\n domProps['aria-multiselectable'] = _ariaMultiSelectable;\n }\n if (accessibilityOrientation != null) {\n warnOnce('accessibilityOrientation', \"accessibilityOrientation is deprecated. Use aria-orientation.\");\n }\n var _ariaOrientation = ariaOrientation != null ? ariaOrientation : accessibilityOrientation;\n if (_ariaOrientation != null) {\n domProps['aria-orientation'] = _ariaOrientation;\n }\n if (accessibilityOwns != null) {\n warnOnce('accessibilityOwns', \"accessibilityOwns is deprecated. Use aria-owns.\");\n }\n var _ariaOwns = ariaOwns != null ? ariaOwns : accessibilityOwns;\n if (_ariaOwns != null) {\n domProps['aria-owns'] = processIDRefList(_ariaOwns);\n }\n if (accessibilityPlaceholder != null) {\n warnOnce('accessibilityPlaceholder', \"accessibilityPlaceholder is deprecated. Use aria-placeholder.\");\n }\n var _ariaPlaceholder = ariaPlaceholder != null ? ariaPlaceholder : accessibilityPlaceholder;\n if (_ariaPlaceholder != null) {\n domProps['aria-placeholder'] = _ariaPlaceholder;\n }\n if (accessibilityPosInSet != null) {\n warnOnce('accessibilityPosInSet', \"accessibilityPosInSet is deprecated. Use aria-posinset.\");\n }\n var _ariaPosInSet = ariaPosInSet != null ? ariaPosInSet : accessibilityPosInSet;\n if (_ariaPosInSet != null) {\n domProps['aria-posinset'] = _ariaPosInSet;\n }\n if (accessibilityPressed != null) {\n warnOnce('accessibilityPressed', \"accessibilityPressed is deprecated. Use aria-pressed.\");\n }\n var _ariaPressed = ariaPressed != null ? ariaPressed : accessibilityPressed;\n if (_ariaPressed != null) {\n domProps['aria-pressed'] = _ariaPressed;\n }\n if (accessibilityReadOnly != null) {\n warnOnce('accessibilityReadOnly', \"accessibilityReadOnly is deprecated. Use aria-readonly.\");\n }\n var _ariaReadOnly = ariaReadOnly != null ? ariaReadOnly : accessibilityReadOnly;\n if (_ariaReadOnly != null) {\n domProps['aria-readonly'] = _ariaReadOnly;\n // Enhance with native semantics\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.readOnly = true;\n }\n }\n if (accessibilityRequired != null) {\n warnOnce('accessibilityRequired', \"accessibilityRequired is deprecated. Use aria-required.\");\n }\n var _ariaRequired = ariaRequired != null ? ariaRequired : accessibilityRequired;\n if (_ariaRequired != null) {\n domProps['aria-required'] = _ariaRequired;\n // Enhance with native semantics\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.required = accessibilityRequired;\n }\n }\n if (accessibilityRole != null) {\n warnOnce('accessibilityRole', \"accessibilityRole is deprecated. Use role.\");\n }\n if (role != null) {\n // 'presentation' synonym has wider browser support\n domProps['role'] = role === 'none' ? 'presentation' : role;\n }\n if (accessibilityRoleDescription != null) {\n warnOnce('accessibilityRoleDescription', \"accessibilityRoleDescription is deprecated. Use aria-roledescription.\");\n }\n var _ariaRoleDescription = ariaRoleDescription != null ? ariaRoleDescription : accessibilityRoleDescription;\n if (_ariaRoleDescription != null) {\n domProps['aria-roledescription'] = _ariaRoleDescription;\n }\n if (accessibilityRowCount != null) {\n warnOnce('accessibilityRowCount', \"accessibilityRowCount is deprecated. Use aria-rowcount.\");\n }\n var _ariaRowCount = ariaRowCount != null ? ariaRowCount : accessibilityRowCount;\n if (_ariaRowCount != null) {\n domProps['aria-rowcount'] = _ariaRowCount;\n }\n if (accessibilityRowIndex != null) {\n warnOnce('accessibilityRowIndex', \"accessibilityRowIndex is deprecated. Use aria-rowindex.\");\n }\n var _ariaRowIndex = ariaRowIndex != null ? ariaRowIndex : accessibilityRowIndex;\n if (_ariaRowIndex != null) {\n domProps['aria-rowindex'] = _ariaRowIndex;\n }\n if (accessibilityRowSpan != null) {\n warnOnce('accessibilityRowSpan', \"accessibilityRowSpan is deprecated. Use aria-rowspan.\");\n }\n var _ariaRowSpan = ariaRowSpan != null ? ariaRowSpan : accessibilityRowSpan;\n if (_ariaRowSpan != null) {\n domProps['aria-rowspan'] = _ariaRowSpan;\n }\n if (accessibilitySelected != null) {\n warnOnce('accessibilitySelected', \"accessibilitySelected is deprecated. Use aria-selected.\");\n }\n var _ariaSelected = ariaSelected != null ? ariaSelected : accessibilitySelected;\n if (_ariaSelected != null) {\n domProps['aria-selected'] = _ariaSelected;\n }\n if (accessibilitySetSize != null) {\n warnOnce('accessibilitySetSize', \"accessibilitySetSize is deprecated. Use aria-setsize.\");\n }\n var _ariaSetSize = ariaSetSize != null ? ariaSetSize : accessibilitySetSize;\n if (_ariaSetSize != null) {\n domProps['aria-setsize'] = _ariaSetSize;\n }\n if (accessibilitySort != null) {\n warnOnce('accessibilitySort', \"accessibilitySort is deprecated. Use aria-sort.\");\n }\n var _ariaSort = ariaSort != null ? ariaSort : accessibilitySort;\n if (_ariaSort != null) {\n domProps['aria-sort'] = _ariaSort;\n }\n if (accessibilityValueMax != null) {\n warnOnce('accessibilityValueMax', \"accessibilityValueMax is deprecated. Use aria-valuemax.\");\n }\n var _ariaValueMax = ariaValueMax != null ? ariaValueMax : accessibilityValueMax;\n if (_ariaValueMax != null) {\n domProps['aria-valuemax'] = _ariaValueMax;\n }\n if (accessibilityValueMin != null) {\n warnOnce('accessibilityValueMin', \"accessibilityValueMin is deprecated. Use aria-valuemin.\");\n }\n var _ariaValueMin = ariaValueMin != null ? ariaValueMin : accessibilityValueMin;\n if (_ariaValueMin != null) {\n domProps['aria-valuemin'] = _ariaValueMin;\n }\n if (accessibilityValueNow != null) {\n warnOnce('accessibilityValueNow', \"accessibilityValueNow is deprecated. Use aria-valuenow.\");\n }\n var _ariaValueNow = ariaValueNow != null ? ariaValueNow : accessibilityValueNow;\n if (_ariaValueNow != null) {\n domProps['aria-valuenow'] = _ariaValueNow;\n }\n if (accessibilityValueText != null) {\n warnOnce('accessibilityValueText', \"accessibilityValueText is deprecated. Use aria-valuetext.\");\n }\n var _ariaValueText = ariaValueText != null ? ariaValueText : accessibilityValueText;\n if (_ariaValueText != null) {\n domProps['aria-valuetext'] = _ariaValueText;\n }\n\n // \"dataSet\" replaced with \"data-*\"\n if (dataSet != null) {\n for (var dataProp in dataSet) {\n if (hasOwnProperty.call(dataSet, dataProp)) {\n var dataName = hyphenateString(dataProp);\n var dataValue = dataSet[dataProp];\n if (dataValue != null) {\n domProps[\"data-\" + dataName] = dataValue;\n }\n }\n }\n }\n\n // FOCUS\n if (tabIndex === 0 || tabIndex === '0' || tabIndex === -1 || tabIndex === '-1') {\n domProps.tabIndex = tabIndex;\n } else {\n if (focusable != null) {\n warnOnce('focusable', \"focusable is deprecated.\");\n }\n\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n if (focusable === false) {\n domProps.tabIndex = '-1';\n }\n if (\n // These native elements are keyboard focusable by default\n elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n if (focusable === false || accessibilityDisabled === true) {\n domProps.tabIndex = '-1';\n }\n } else if (\n // These roles are made keyboard focusable by default\n role === 'button' || role === 'checkbox' || role === 'link' || role === 'radio' || role === 'textbox' || role === 'switch') {\n if (focusable !== false) {\n domProps.tabIndex = '0';\n }\n } else {\n // Everything else must explicitly set the prop\n if (focusable === true) {\n domProps.tabIndex = '0';\n }\n }\n }\n\n // Resolve styles\n if (pointerEvents != null) {\n warnOnce('pointerEvents', \"props.pointerEvents is deprecated. Use style.pointerEvents\");\n }\n var _StyleSheet = StyleSheet([style, pointerEvents && pointerEventsStyles[pointerEvents]], _objectSpread({\n writingDirection: 'ltr'\n }, options)),\n className = _StyleSheet[0],\n inlineStyle = _StyleSheet[1];\n if (className) {\n domProps.className = className;\n }\n if (inlineStyle) {\n domProps.style = inlineStyle;\n }\n\n // OTHER\n // Native element ID\n if (nativeID != null) {\n warnOnce('nativeID', \"nativeID is deprecated. Use id.\");\n }\n var _id = id != null ? id : nativeID;\n if (_id != null) {\n domProps.id = _id;\n }\n // Automated test IDs\n if (testID != null) {\n domProps['data-testid'] = testID;\n }\n if (domProps.type == null && elementType === 'button') {\n domProps.type = 'button';\n }\n return domProps;\n};\nexport default createDOMProps;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nvar rtlScripts = new Set(['Arab', 'Syrc', 'Samr', 'Mand', 'Thaa', 'Mend', 'Nkoo', 'Adlm', 'Rohg', 'Hebr']);\nvar rtlLangs = new Set(['ae',\n// Avestan\n'ar',\n// Arabic\n'arc',\n// Aramaic\n'bcc',\n// Southern Balochi\n'bqi',\n// Bakthiari\n'ckb',\n// Sorani\n'dv',\n// Dhivehi\n'fa', 'far',\n// Persian\n'glk',\n// Gilaki\n'he', 'iw',\n// Hebrew\n'khw',\n// Khowar\n'ks',\n// Kashmiri\n'ku',\n// Kurdish\n'mzn',\n// Mazanderani\n'nqo',\n// N'Ko\n'pnb',\n// Western Punjabi\n'ps',\n// Pashto\n'sd',\n// Sindhi\n'ug',\n// Uyghur\n'ur',\n// Urdu\n'yi' // Yiddish\n]);\n\nvar cache = new Map();\n\n/**\n * Determine the writing direction of a locale\n */\nexport function isLocaleRTL(locale) {\n var cachedRTL = cache.get(locale);\n if (cachedRTL) {\n return cachedRTL;\n }\n var isRTL = false;\n // $FlowFixMe\n if (Intl.Locale) {\n // $FlowFixMe\n var script = new Intl.Locale(locale).maximize().script;\n isRTL = rtlScripts.has(script);\n } else {\n // Fallback to inferring from language\n var lang = locale.split('-')[0];\n isRTL = rtlLangs.has(lang);\n }\n cache.set(locale, isRTL);\n return isRTL;\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport React, { createContext, useContext } from 'react';\nimport { isLocaleRTL } from './isLocaleRTL';\nvar defaultLocale = {\n direction: 'ltr',\n locale: 'en-US'\n};\nvar LocaleContext = /*#__PURE__*/createContext(defaultLocale);\nexport function getLocaleDirection(locale) {\n return isLocaleRTL(locale) ? 'rtl' : 'ltr';\n}\nexport function LocaleProvider(props) {\n var direction = props.direction,\n locale = props.locale,\n children = props.children;\n var needsContext = direction || locale;\n return needsContext ? /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n children: children,\n value: {\n direction: locale ? getLocaleDirection(locale) : direction,\n locale\n }\n }) : children;\n}\nexport function useLocaleContext() {\n return useContext(LocaleContext);\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport createDOMProps from '../../modules/createDOMProps';\nimport React from 'react';\nimport { LocaleProvider } from '../../modules/useLocale';\nvar createElement = (component, props, options) => {\n // Use equivalent platform elements where possible.\n var accessibilityComponent;\n if (component && component.constructor === String) {\n accessibilityComponent = AccessibilityUtil.propsToAccessibilityComponent(props);\n }\n var Component = accessibilityComponent || component;\n var domProps = createDOMProps(Component, props, options);\n var element = /*#__PURE__*/React.createElement(Component, domProps);\n\n // Update locale context if element's writing direction prop changes\n var elementWithLocaleProvider = domProps.dir ? /*#__PURE__*/React.createElement(LocaleProvider, {\n children: element,\n direction: domProps.dir,\n locale: domProps.lang\n }) : element;\n return elementWithLocaleProvider;\n};\nexport default createElement;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nexport var defaultProps = {\n children: true,\n dataSet: true,\n dir: true,\n id: true,\n ref: true,\n suppressHydrationWarning: true,\n tabIndex: true,\n testID: true,\n // @deprecated\n focusable: true,\n nativeID: true\n};\nexport var accessibilityProps = {\n 'aria-activedescendant': true,\n 'aria-atomic': true,\n 'aria-autocomplete': true,\n 'aria-busy': true,\n 'aria-checked': true,\n 'aria-colcount': true,\n 'aria-colindex': true,\n 'aria-colspan': true,\n 'aria-controls': true,\n 'aria-current': true,\n 'aria-describedby': true,\n 'aria-details': true,\n 'aria-disabled': true,\n 'aria-errormessage': true,\n 'aria-expanded': true,\n 'aria-flowto': true,\n 'aria-haspopup': true,\n 'aria-hidden': true,\n 'aria-invalid': true,\n 'aria-keyshortcuts': true,\n 'aria-label': true,\n 'aria-labelledby': true,\n 'aria-level': true,\n 'aria-live': true,\n 'aria-modal': true,\n 'aria-multiline': true,\n 'aria-multiselectable': true,\n 'aria-orientation': true,\n 'aria-owns': true,\n 'aria-placeholder': true,\n 'aria-posinset': true,\n 'aria-pressed': true,\n 'aria-readonly': true,\n 'aria-required': true,\n role: true,\n 'aria-roledescription': true,\n 'aria-rowcount': true,\n 'aria-rowindex': true,\n 'aria-rowspan': true,\n 'aria-selected': true,\n 'aria-setsize': true,\n 'aria-sort': true,\n 'aria-valuemax': true,\n 'aria-valuemin': true,\n 'aria-valuenow': true,\n 'aria-valuetext': true,\n // @deprecated\n accessibilityActiveDescendant: true,\n accessibilityAtomic: true,\n accessibilityAutoComplete: true,\n accessibilityBusy: true,\n accessibilityChecked: true,\n accessibilityColumnCount: true,\n accessibilityColumnIndex: true,\n accessibilityColumnSpan: true,\n accessibilityControls: true,\n accessibilityCurrent: true,\n accessibilityDescribedBy: true,\n accessibilityDetails: true,\n accessibilityDisabled: true,\n accessibilityErrorMessage: true,\n accessibilityExpanded: true,\n accessibilityFlowTo: true,\n accessibilityHasPopup: true,\n accessibilityHidden: true,\n accessibilityInvalid: true,\n accessibilityKeyShortcuts: true,\n accessibilityLabel: true,\n accessibilityLabelledBy: true,\n accessibilityLevel: true,\n accessibilityLiveRegion: true,\n accessibilityModal: true,\n accessibilityMultiline: true,\n accessibilityMultiSelectable: true,\n accessibilityOrientation: true,\n accessibilityOwns: true,\n accessibilityPlaceholder: true,\n accessibilityPosInSet: true,\n accessibilityPressed: true,\n accessibilityReadOnly: true,\n accessibilityRequired: true,\n accessibilityRole: true,\n accessibilityRoleDescription: true,\n accessibilityRowCount: true,\n accessibilityRowIndex: true,\n accessibilityRowSpan: true,\n accessibilitySelected: true,\n accessibilitySetSize: true,\n accessibilitySort: true,\n accessibilityValueMax: true,\n accessibilityValueMin: true,\n accessibilityValueNow: true,\n accessibilityValueText: true\n};\nexport var clickProps = {\n onClick: true,\n onAuxClick: true,\n onContextMenu: true,\n onGotPointerCapture: true,\n onLostPointerCapture: true,\n onPointerCancel: true,\n onPointerDown: true,\n onPointerEnter: true,\n onPointerMove: true,\n onPointerLeave: true,\n onPointerOut: true,\n onPointerOver: true,\n onPointerUp: true\n};\nexport var focusProps = {\n onBlur: true,\n onFocus: true\n};\nexport var keyboardProps = {\n onKeyDown: true,\n onKeyDownCapture: true,\n onKeyUp: true,\n onKeyUpCapture: true\n};\nexport var mouseProps = {\n onMouseDown: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseMove: true,\n onMouseOver: true,\n onMouseOut: true,\n onMouseUp: true\n};\nexport var touchProps = {\n onTouchCancel: true,\n onTouchCancelCapture: true,\n onTouchEnd: true,\n onTouchEndCapture: true,\n onTouchMove: true,\n onTouchMoveCapture: true,\n onTouchStart: true,\n onTouchStartCapture: true\n};\nexport var styleProps = {\n style: true\n};","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nexport default function pick(obj, list) {\n var nextObj = {};\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (list[key] === true) {\n nextObj[key] = obj[key];\n }\n }\n }\n return nextObj;\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 * useLayoutEffect throws an error on the server. On the few occasions where is\n * problematic, use this hook.\n *\n * \n */\n\nimport { useEffect, useLayoutEffect } from 'react';\nimport canUseDOM from '../canUseDom';\nvar useLayoutEffectImpl = canUseDOM ? useLayoutEffect : useEffect;\nexport default useLayoutEffectImpl;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nvar unitlessNumbers = {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n // transform types\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n // RN properties\n shadowOpacity: true\n};\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\nvar prefixKey = (prefix, key) => {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\nObject.keys(unitlessNumbers).forEach(prop => {\n prefixes.forEach(prefix => {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\nexport default unitlessNumbers;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * From React 16.0.0\n * \n */\n\nimport isUnitlessNumber from '../unitlessNumbers';\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n if (isEmpty) {\n return '';\n }\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return ('' + value).trim();\n}\nexport default dangerousStyleValue;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * From React 16.3.0\n * \n */\n\nimport dangerousStyleValue from './dangerousStyleValue';\n\n/**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\nfunction setValueForStyles(node, styles) {\n var style = node.style;\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n if (isCustomProperty) {\n style.setProperty(styleName, styleValue);\n } else {\n style[styleName] = styleValue;\n }\n }\n}\nexport default setValueForStyles;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport setValueForStyles from '../../modules/setValueForStyles';\nvar getRect = node => {\n var height = node.offsetHeight;\n var width = node.offsetWidth;\n var left = node.offsetLeft;\n var top = node.offsetTop;\n node = node.offsetParent;\n while (node && node.nodeType === 1 /* Node.ELEMENT_NODE */) {\n left += node.offsetLeft + node.clientLeft - node.scrollLeft;\n top += node.offsetTop + node.clientTop - node.scrollTop;\n node = node.offsetParent;\n }\n top -= window.scrollY;\n left -= window.scrollX;\n return {\n width,\n height,\n top,\n left\n };\n};\nvar measureLayout = (node, relativeToNativeNode, callback) => {\n var relativeNode = relativeToNativeNode || node && node.parentNode;\n if (node && relativeNode) {\n setTimeout(() => {\n if (node.isConnected && relativeNode.isConnected) {\n var relativeRect = getRect(relativeNode);\n var _getRect = getRect(node),\n height = _getRect.height,\n left = _getRect.left,\n top = _getRect.top,\n width = _getRect.width;\n var x = left - relativeRect.left;\n var y = top - relativeRect.top;\n callback(x, y, width, height, left, top);\n }\n }, 0);\n }\n};\nvar elementsToIgnore = {\n A: true,\n BODY: true,\n INPUT: true,\n SELECT: true,\n TEXTAREA: true\n};\nvar UIManager = {\n blur(node) {\n try {\n node.blur();\n } catch (err) {}\n },\n focus(node) {\n try {\n var name = node.nodeName;\n // A tabIndex of -1 allows element to be programmatically focused but\n // prevents keyboard focus. We don't want to set the tabindex value on\n // elements that should not prevent keyboard focus.\n if (node.getAttribute('tabIndex') == null && node.isContentEditable !== true && elementsToIgnore[name] == null) {\n node.setAttribute('tabIndex', '-1');\n }\n node.focus();\n } catch (err) {}\n },\n measure(node, callback) {\n measureLayout(node, null, callback);\n },\n measureInWindow(node, callback) {\n if (node) {\n setTimeout(() => {\n var _getRect2 = getRect(node),\n height = _getRect2.height,\n left = _getRect2.left,\n top = _getRect2.top,\n width = _getRect2.width;\n callback(left, top, width, height);\n }, 0);\n }\n },\n measureLayout(node, relativeToNativeNode, onFail, onSuccess) {\n measureLayout(node, relativeToNativeNode, onSuccess);\n },\n updateView(node, props) {\n for (var prop in props) {\n if (!Object.prototype.hasOwnProperty.call(props, prop)) {\n continue;\n }\n var value = props[prop];\n switch (prop) {\n case 'style':\n {\n setValueForStyles(node, value);\n break;\n }\n case 'class':\n case 'className':\n {\n node.setAttribute('class', value);\n break;\n }\n case 'text':\n case 'value':\n // native platforms use `text` prop to replace text input value\n node.value = value;\n break;\n default:\n node.setAttribute(prop, value);\n }\n }\n },\n configureNextLayoutAnimation(config, onAnimationDidEnd) {\n onAnimationDidEnd();\n },\n // mocks\n setLayoutAnimationEnabledExperimental() {}\n};\nexport default UIManager;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport useLayoutEffect from '../useLayoutEffect';\nimport UIManager from '../../exports/UIManager';\nimport canUseDOM from '../canUseDom';\nvar DOM_LAYOUT_HANDLER_NAME = '__reactLayoutHandler';\nvar didWarn = !canUseDOM;\nvar resizeObserver = null;\nfunction getResizeObserver() {\n if (canUseDOM && typeof window.ResizeObserver !== 'undefined') {\n if (resizeObserver == null) {\n resizeObserver = new window.ResizeObserver(function (entries) {\n entries.forEach(entry => {\n var node = entry.target;\n var onLayout = node[DOM_LAYOUT_HANDLER_NAME];\n if (typeof onLayout === 'function') {\n // We still need to measure the view because browsers don't yet provide\n // border-box dimensions in the entry\n UIManager.measure(node, (x, y, width, height, left, top) => {\n var event = {\n // $FlowFixMe\n nativeEvent: {\n layout: {\n x,\n y,\n width,\n height,\n left,\n top\n }\n },\n timeStamp: Date.now()\n };\n Object.defineProperty(event.nativeEvent, 'target', {\n enumerable: true,\n get: () => entry.target\n });\n onLayout(event);\n });\n }\n });\n });\n }\n } else if (!didWarn) {\n if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\n console.warn('onLayout relies on ResizeObserver which is not supported by your browser. ' + 'Please include a polyfill, e.g., https://github.com/que-etc/resize-observer-polyfill.');\n didWarn = true;\n }\n }\n return resizeObserver;\n}\nexport default function useElementLayout(ref, onLayout) {\n var observer = getResizeObserver();\n useLayoutEffect(() => {\n var node = ref.current;\n if (node != null) {\n node[DOM_LAYOUT_HANDLER_NAME] = onLayout;\n }\n }, [ref, onLayout]);\n\n // Observing is done in a separate effect to avoid this effect running\n // when 'onLayout' changes.\n useLayoutEffect(() => {\n var node = ref.current;\n if (node != null && observer != null) {\n if (typeof node[DOM_LAYOUT_HANDLER_NAME] === 'function') {\n observer.observe(node);\n } else {\n observer.unobserve(node);\n }\n }\n return () => {\n if (node != null && observer != null) {\n observer.unobserve(node);\n }\n };\n }, [ref, observer]);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport * as React from 'react';\nexport default function mergeRefs() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return function forwardRef(node) {\n args.forEach(ref => {\n if (ref == null) {\n return;\n }\n if (typeof ref === 'function') {\n ref(node);\n return;\n }\n if (typeof ref === 'object') {\n ref.current = node;\n return;\n }\n console.error(\"mergeRefs cannot handle Refs of type boolean, number or string, received ref \" + String(ref));\n });\n };\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport * as React from 'react';\nimport mergeRefs from '../mergeRefs';\nexport default function useMergeRefs() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return React.useMemo(() => mergeRefs(...args),\n // eslint-disable-next-line\n [...args]);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport * as React from 'react';\nvar UNINITIALIZED = typeof Symbol === 'function' && typeof Symbol() === 'symbol' ? Symbol() : Object.freeze({});\nexport default function useStable(getInitialValue) {\n var ref = React.useRef(UNINITIALIZED);\n if (ref.current === UNINITIALIZED) {\n ref.current = getInitialValue();\n }\n // $FlowFixMe (#64650789) Trouble refining types where `Symbol` is concerned.\n return ref.current;\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport UIManager from '../../exports/UIManager';\nimport useStable from '../useStable';\n\n/**\n * Adds non-standard methods to the hode element. This is temporarily until an\n * API like `ReactNative.measure(hostRef, callback)` is added to React Native.\n */\nexport default function usePlatformMethods(_ref) {\n var pointerEvents = _ref.pointerEvents,\n style = _ref.style;\n // Avoid creating a new ref on every render.\n var ref = useStable(() => hostNode => {\n if (hostNode != null) {\n hostNode.measure = callback => UIManager.measure(hostNode, callback);\n hostNode.measureLayout = (relativeToNode, success, failure) => UIManager.measureLayout(hostNode, relativeToNode, failure, success);\n hostNode.measureInWindow = callback => UIManager.measureInWindow(hostNode, callback);\n }\n });\n return ref;\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nvar getBoundingClientRect = node => {\n if (node != null) {\n var isElement = node.nodeType === 1; /* Node.ELEMENT_NODE */\n if (isElement && typeof node.getBoundingClientRect === 'function') {\n return node.getBoundingClientRect();\n }\n }\n};\nexport default getBoundingClientRect;","/**\n * Copyright (c) Nicolas Gallagher\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 */\n\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nvar emptyFunction = () => {};\nvar emptyObject = {};\nvar emptyArray = [];\n\n/**\n * Safari produces very large identifiers that would cause the `touchBank` array\n * length to be so large as to crash the browser, if not normalized like this.\n * In the future the `touchBank` should use an object/map instead.\n */\nfunction normalizeIdentifier(identifier) {\n return identifier > 20 ? identifier % 20 : identifier;\n}\n\n/**\n * Converts a native DOM event to a ResponderEvent.\n * Mouse events are transformed into fake touch events.\n */\nexport default function createResponderEvent(domEvent, responderTouchHistoryStore) {\n var rect;\n var propagationWasStopped = false;\n var changedTouches;\n var touches;\n var domEventChangedTouches = domEvent.changedTouches;\n var domEventType = domEvent.type;\n var metaKey = domEvent.metaKey === true;\n var shiftKey = domEvent.shiftKey === true;\n var force = domEventChangedTouches && domEventChangedTouches[0].force || 0;\n var identifier = normalizeIdentifier(domEventChangedTouches && domEventChangedTouches[0].identifier || 0);\n var clientX = domEventChangedTouches && domEventChangedTouches[0].clientX || domEvent.clientX;\n var clientY = domEventChangedTouches && domEventChangedTouches[0].clientY || domEvent.clientY;\n var pageX = domEventChangedTouches && domEventChangedTouches[0].pageX || domEvent.pageX;\n var pageY = domEventChangedTouches && domEventChangedTouches[0].pageY || domEvent.pageY;\n var preventDefault = typeof domEvent.preventDefault === 'function' ? domEvent.preventDefault.bind(domEvent) : emptyFunction;\n var timestamp = domEvent.timeStamp;\n function normalizeTouches(touches) {\n return Array.prototype.slice.call(touches).map(touch => {\n return {\n force: touch.force,\n identifier: normalizeIdentifier(touch.identifier),\n get locationX() {\n return locationX(touch.clientX);\n },\n get locationY() {\n return locationY(touch.clientY);\n },\n pageX: touch.pageX,\n pageY: touch.pageY,\n target: touch.target,\n timestamp\n };\n });\n }\n if (domEventChangedTouches != null) {\n changedTouches = normalizeTouches(domEventChangedTouches);\n touches = normalizeTouches(domEvent.touches);\n } else {\n var emulatedTouches = [{\n force,\n identifier,\n get locationX() {\n return locationX(clientX);\n },\n get locationY() {\n return locationY(clientY);\n },\n pageX,\n pageY,\n target: domEvent.target,\n timestamp\n }];\n changedTouches = emulatedTouches;\n touches = domEventType === 'mouseup' || domEventType === 'dragstart' ? emptyArray : emulatedTouches;\n }\n var responderEvent = {\n bubbles: true,\n cancelable: true,\n // `currentTarget` is set before dispatch\n currentTarget: null,\n defaultPrevented: domEvent.defaultPrevented,\n dispatchConfig: emptyObject,\n eventPhase: domEvent.eventPhase,\n isDefaultPrevented() {\n return domEvent.defaultPrevented;\n },\n isPropagationStopped() {\n return propagationWasStopped;\n },\n isTrusted: domEvent.isTrusted,\n nativeEvent: {\n altKey: false,\n ctrlKey: false,\n metaKey,\n shiftKey,\n changedTouches,\n force,\n identifier,\n get locationX() {\n return locationX(clientX);\n },\n get locationY() {\n return locationY(clientY);\n },\n pageX,\n pageY,\n target: domEvent.target,\n timestamp,\n touches,\n type: domEventType\n },\n persist: emptyFunction,\n preventDefault,\n stopPropagation() {\n propagationWasStopped = true;\n },\n target: domEvent.target,\n timeStamp: timestamp,\n touchHistory: responderTouchHistoryStore.touchHistory\n };\n\n // Using getters and functions serves two purposes:\n // 1) The value of `currentTarget` is not initially available.\n // 2) Measuring the clientRect may cause layout jank and should only be done on-demand.\n function locationX(x) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n if (rect) {\n return x - rect.left;\n }\n }\n function locationY(y) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n if (rect) {\n return y - rect.top;\n }\n }\n return responderEvent;\n}","/**\n * Copyright (c) Nicolas Gallagher\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 */\n\nexport var BLUR = 'blur';\nexport var CONTEXT_MENU = 'contextmenu';\nexport var FOCUS_OUT = 'focusout';\nexport var MOUSE_DOWN = 'mousedown';\nexport var MOUSE_MOVE = 'mousemove';\nexport var MOUSE_UP = 'mouseup';\nexport var MOUSE_CANCEL = 'dragstart';\nexport var TOUCH_START = 'touchstart';\nexport var TOUCH_MOVE = 'touchmove';\nexport var TOUCH_END = 'touchend';\nexport var TOUCH_CANCEL = 'touchcancel';\nexport var SCROLL = 'scroll';\nexport var SELECT = 'select';\nexport var SELECTION_CHANGE = 'selectionchange';\nexport function isStartish(eventType) {\n return eventType === TOUCH_START || eventType === MOUSE_DOWN;\n}\nexport function isMoveish(eventType) {\n return eventType === TOUCH_MOVE || eventType === MOUSE_MOVE;\n}\nexport function isEndish(eventType) {\n return eventType === TOUCH_END || eventType === MOUSE_UP || isCancelish(eventType);\n}\nexport function isCancelish(eventType) {\n return eventType === TOUCH_CANCEL || eventType === MOUSE_CANCEL;\n}\nexport function isScroll(eventType) {\n return eventType === SCROLL;\n}\nexport function isSelectionChange(eventType) {\n return eventType === SELECT || eventType === SELECTION_CHANGE;\n}","/**\n * Copyright (c) Nicolas Gallagher\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 */\n\nimport isSelectionValid from '../../modules/isSelectionValid';\nvar keyName = '__reactResponderId';\nfunction getEventPath(domEvent) {\n // The 'selectionchange' event always has the 'document' as the target.\n // Use the anchor node as the initial target to reconstruct a path.\n // (We actually only need the first \"responder\" node in practice.)\n if (domEvent.type === 'selectionchange') {\n var target = window.getSelection().anchorNode;\n return composedPathFallback(target);\n } else {\n var path = domEvent.composedPath != null ? domEvent.composedPath() : composedPathFallback(domEvent.target);\n return path;\n }\n}\nfunction composedPathFallback(target) {\n var path = [];\n while (target != null && target !== document.body) {\n path.push(target);\n target = target.parentNode;\n }\n return path;\n}\n\n/**\n * Retrieve the responderId from a host node\n */\nfunction getResponderId(node) {\n if (node != null) {\n return node[keyName];\n }\n return null;\n}\n\n/**\n * Store the responderId on a host node\n */\nexport function setResponderId(node, id) {\n if (node != null) {\n node[keyName] = id;\n }\n}\n\n/**\n * Filter the event path to contain only the nodes attached to the responder system\n */\nexport function getResponderPaths(domEvent) {\n var idPath = [];\n var nodePath = [];\n var eventPath = getEventPath(domEvent);\n for (var i = 0; i < eventPath.length; i++) {\n var node = eventPath[i];\n var id = getResponderId(node);\n if (id != null) {\n idPath.push(id);\n nodePath.push(node);\n }\n }\n return {\n idPath,\n nodePath\n };\n}\n\n/**\n * Walk the paths and find the first common ancestor\n */\nexport function getLowestCommonAncestor(pathA, pathB) {\n var pathALength = pathA.length;\n var pathBLength = pathB.length;\n if (\n // If either path is empty\n pathALength === 0 || pathBLength === 0 ||\n // If the last elements aren't the same there can't be a common ancestor\n // that is connected to the responder system\n pathA[pathALength - 1] !== pathB[pathBLength - 1]) {\n return null;\n }\n var itemA = pathA[0];\n var indexA = 0;\n var itemB = pathB[0];\n var indexB = 0;\n\n // If A is deeper, skip indices that can't match.\n if (pathALength - pathBLength > 0) {\n indexA = pathALength - pathBLength;\n itemA = pathA[indexA];\n pathALength = pathBLength;\n }\n\n // If B is deeper, skip indices that can't match\n if (pathBLength - pathALength > 0) {\n indexB = pathBLength - pathALength;\n itemB = pathB[indexB];\n pathBLength = pathALength;\n }\n\n // Walk in lockstep until a match is found\n var depth = pathALength;\n while (depth--) {\n if (itemA === itemB) {\n return itemA;\n }\n itemA = pathA[indexA++];\n itemB = pathB[indexB++];\n }\n return null;\n}\n\n/**\n * Determine whether any of the active touches are within the current responder.\n * This cannot rely on W3C `targetTouches`, as neither IE11 nor Safari implement it.\n */\nexport function hasTargetTouches(target, touches) {\n if (!touches || touches.length === 0) {\n return false;\n }\n for (var i = 0; i < touches.length; i++) {\n var node = touches[i].target;\n if (node != null) {\n if (target.contains(node)) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * Ignore 'selectionchange' events that don't correspond with a person's intent to\n * select text.\n */\nexport function hasValidSelection(domEvent) {\n if (domEvent.type === 'selectionchange') {\n return isSelectionValid();\n }\n return domEvent.type === 'select';\n}\n\n/**\n * Events are only valid if the primary button was used without specific modifier keys.\n */\nexport function isPrimaryPointerDown(domEvent) {\n var altKey = domEvent.altKey,\n button = domEvent.button,\n buttons = domEvent.buttons,\n ctrlKey = domEvent.ctrlKey,\n type = domEvent.type;\n var isTouch = type === 'touchstart' || type === 'touchmove';\n var isPrimaryMouseDown = type === 'mousedown' && (button === 0 || buttons === 1);\n var isPrimaryMouseMove = type === 'mousemove' && buttons === 1;\n var noModifiers = altKey === false && ctrlKey === false;\n if (isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers) {\n return true;\n }\n return false;\n}","/**\n * Copyright (c) Nicolas Gallagher\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 */\n\nexport default function isSelectionValid() {\n var selection = window.getSelection();\n var string = selection.toString();\n var anchorNode = selection.anchorNode;\n var focusNode = selection.focusNode;\n var isTextNode = anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE || focusNode && focusNode.nodeType === window.Node.TEXT_NODE;\n return string.length >= 1 && string !== '\\n' && isTextNode;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport { isStartish, isMoveish, isEndish } from './ResponderEventTypes';\n/**\n * Tracks the position and time of each active touch by `touch.identifier`. We\n * should typically only see IDs in the range of 1-20 because IDs get recycled\n * when touches end and start again.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nvar MAX_TOUCH_BANK = 20;\nfunction timestampForTouch(touch) {\n // The legacy internal implementation provides \"timeStamp\", which has been\n // renamed to \"timestamp\".\n return touch.timeStamp || touch.timestamp;\n}\n\n/**\n * TODO: Instead of making gestures recompute filtered velocity, we could\n * include a built in velocity computation that can be reused globally.\n */\nfunction createTouchRecord(touch) {\n return {\n touchActive: true,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n };\n}\nfunction resetTouchRecord(touchRecord, touch) {\n touchRecord.touchActive = true;\n touchRecord.startPageX = touch.pageX;\n touchRecord.startPageY = touch.pageY;\n touchRecord.startTimeStamp = timestampForTouch(touch);\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchRecord.previousPageX = touch.pageX;\n touchRecord.previousPageY = touch.pageY;\n touchRecord.previousTimeStamp = timestampForTouch(touch);\n}\nfunction getTouchIdentifier(_ref) {\n var identifier = _ref.identifier;\n if (identifier == null) {\n console.error('Touch object is missing identifier.');\n }\n if (__DEV__) {\n if (identifier > MAX_TOUCH_BANK) {\n console.error('Touch identifier %s is greater than maximum supported %s which causes ' + 'performance issues backfilling array locations for all of the indices.', identifier, MAX_TOUCH_BANK);\n }\n }\n return identifier;\n}\nfunction recordTouchStart(touch, touchHistory) {\n var identifier = getTouchIdentifier(touch);\n var touchRecord = touchHistory.touchBank[identifier];\n if (touchRecord) {\n resetTouchRecord(touchRecord, touch);\n } else {\n touchHistory.touchBank[identifier] = createTouchRecord(touch);\n }\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\nfunction recordTouchMove(touch, touchHistory) {\n var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\n if (touchRecord) {\n touchRecord.touchActive = true;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch move without a touch start.\\n', \"Touch Move: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank(touchHistory));\n }\n}\nfunction recordTouchEnd(touch, touchHistory) {\n var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\n if (touchRecord) {\n touchRecord.touchActive = false;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch end without a touch start.\\n', \"Touch End: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank(touchHistory));\n }\n}\nfunction printTouch(touch) {\n return JSON.stringify({\n identifier: touch.identifier,\n pageX: touch.pageX,\n pageY: touch.pageY,\n timestamp: timestampForTouch(touch)\n });\n}\nfunction printTouchBank(touchHistory) {\n var touchBank = touchHistory.touchBank;\n var printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));\n if (touchBank.length > MAX_TOUCH_BANK) {\n printed += ' (original size: ' + touchBank.length + ')';\n }\n return printed;\n}\nexport class ResponderTouchHistoryStore {\n constructor() {\n this._touchHistory = {\n touchBank: [],\n //Array\n numberActiveTouches: 0,\n // If there is only one active touch, we remember its location. This prevents\n // us having to loop through all of the touches all the time in the most\n // common case.\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n };\n }\n recordTouchTrack(topLevelType, nativeEvent) {\n var touchHistory = this._touchHistory;\n if (isMoveish(topLevelType)) {\n nativeEvent.changedTouches.forEach(touch => recordTouchMove(touch, touchHistory));\n } else if (isStartish(topLevelType)) {\n nativeEvent.changedTouches.forEach(touch => recordTouchStart(touch, touchHistory));\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n if (touchHistory.numberActiveTouches === 1) {\n touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;\n }\n } else if (isEndish(topLevelType)) {\n nativeEvent.changedTouches.forEach(touch => recordTouchEnd(touch, touchHistory));\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n if (touchHistory.numberActiveTouches === 1) {\n var touchBank = touchHistory.touchBank;\n for (var i = 0; i < touchBank.length; i++) {\n var touchTrackToCheck = touchBank[i];\n if (touchTrackToCheck != null && touchTrackToCheck.touchActive) {\n touchHistory.indexOfSingleActiveTouch = i;\n break;\n }\n }\n if (__DEV__) {\n var activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];\n if (!(activeRecord != null && activeRecord.touchActive)) {\n console.error('Cannot find single active touch.');\n }\n }\n }\n }\n }\n get touchHistory() {\n return this._touchHistory;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher\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 */\n\n/**\n * RESPONDER EVENT SYSTEM\n *\n * A single, global \"interaction lock\" on views. For a view to be the \"responder\" means\n * that pointer interactions are exclusive to that view and none other. The \"interaction\n * lock\" can be transferred (only) to ancestors of the current \"responder\" as long as\n * pointers continue to be active.\n *\n * Responder being granted:\n *\n * A view can become the \"responder\" after the following events:\n * * \"pointerdown\" (implemented using \"touchstart\", \"mousedown\")\n * * \"pointermove\" (implemented using \"touchmove\", \"mousemove\")\n * * \"scroll\" (while a pointer is down)\n * * \"selectionchange\" (while a pointer is down)\n *\n * If nothing is already the \"responder\", the event propagates to (capture) and from\n * (bubble) the event target until a view returns `true` for\n * `on*ShouldSetResponder(Capture)`.\n *\n * If something is already the responder, the event propagates to (capture) and from\n * (bubble) the lowest common ancestor of the event target and the current \"responder\".\n * Then negotiation happens between the current \"responder\" and a view that wants to\n * become the \"responder\": see the timing diagram below.\n *\n * (NOTE: Scrolled views either automatically become the \"responder\" or release the\n * \"interaction lock\". A native scroll view that isn't built on top of the responder\n * system must result in the current \"responder\" being notified that it no longer has\n * the \"interaction lock\" - the native system has taken over.\n *\n * Responder being released:\n *\n * As soon as there are no more active pointers that *started* inside descendants\n * of the *current* \"responder\", an `onResponderRelease` event is dispatched to the\n * current \"responder\", and the responder lock is released.\n *\n * Typical sequence of events:\n * * startShouldSetResponder\n * * responderGrant/Reject\n * * responderStart\n * * responderMove\n * * responderEnd\n * * responderRelease\n */\n\n/* Negotiation Performed\n +-----------------------+\n / \\\nProcess low level events to + Current Responder + wantsResponderID\ndetermine who to perform negot-| (if any exists at all) |\niation/transition | Otherwise just pass through|\n-------------------------------+----------------------------+------------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +--------------+ | |\n | onTouchStart | | |\n +------+-------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onStartShouldSetResponder|----->| onResponderStart (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest | |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderStart|\n | | +----------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +-------------+ | |\n | onTouchMove | | |\n +------+------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onMoveShouldSetResponder |----->| onResponderMove (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest| |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderMove |\n | | +----------------+\n | |\n | |\n Some active touch started| |\n inside current responder | +------------------------+ |\n +------------------------->| onResponderEnd | |\n | | +------------------------+ |\n +---+---------+ | |\n | onTouchEnd | | |\n +---+---------+ | |\n | | +------------------------+ |\n +------------------------->| onResponderEnd | |\n No active touches started| +-----------+------------+ |\n inside current responder | | |\n | v |\n | +------------------------+ |\n | | onResponderRelease | |\n | +------------------------+ |\n | |\n + + */\n\nimport createResponderEvent from './createResponderEvent';\nimport { isCancelish, isEndish, isMoveish, isScroll, isSelectionChange, isStartish } from './ResponderEventTypes';\nimport { getLowestCommonAncestor, getResponderPaths, hasTargetTouches, hasValidSelection, isPrimaryPointerDown, setResponderId } from './utils';\nimport { ResponderTouchHistoryStore } from './ResponderTouchHistoryStore';\nimport canUseDOM from '../canUseDom';\n\n/* ------------ TYPES ------------ */\n\nvar emptyObject = {};\n\n/* ------------ IMPLEMENTATION ------------ */\n\nvar startRegistration = ['onStartShouldSetResponderCapture', 'onStartShouldSetResponder', {\n bubbles: true\n}];\nvar moveRegistration = ['onMoveShouldSetResponderCapture', 'onMoveShouldSetResponder', {\n bubbles: true\n}];\nvar scrollRegistration = ['onScrollShouldSetResponderCapture', 'onScrollShouldSetResponder', {\n bubbles: false\n}];\nvar shouldSetResponderEvents = {\n touchstart: startRegistration,\n mousedown: startRegistration,\n touchmove: moveRegistration,\n mousemove: moveRegistration,\n scroll: scrollRegistration\n};\nvar emptyResponder = {\n id: null,\n idPath: null,\n node: null\n};\nvar responderListenersMap = new Map();\nvar isEmulatingMouseEvents = false;\nvar trackedTouchCount = 0;\nvar currentResponder = {\n id: null,\n node: null,\n idPath: null\n};\nvar responderTouchHistoryStore = new ResponderTouchHistoryStore();\nfunction changeCurrentResponder(responder) {\n currentResponder = responder;\n}\nfunction getResponderConfig(id) {\n var config = responderListenersMap.get(id);\n return config != null ? config : emptyObject;\n}\n\n/**\n * Process native events\n *\n * A single event listener is used to manage the responder system.\n * All pointers are tracked in the ResponderTouchHistoryStore. Native events\n * are interpreted in terms of the Responder System and checked to see if\n * the responder should be transferred. Each host node that is attached to\n * the Responder System has an ID, which is used to look up its associated\n * callbacks.\n */\nfunction eventListener(domEvent) {\n var eventType = domEvent.type;\n var eventTarget = domEvent.target;\n\n /**\n * Manage emulated events and early bailout.\n * Since PointerEvent is not used yet (lack of support in older Safari), it's\n * necessary to manually manage the mess of browser touch/mouse events.\n * And bailout early for termination events when there is no active responder.\n */\n\n // Flag when browser may produce emulated events\n if (eventType === 'touchstart') {\n isEmulatingMouseEvents = true;\n }\n // Remove flag when browser will not produce emulated events\n if (eventType === 'touchmove' || trackedTouchCount > 1) {\n isEmulatingMouseEvents = false;\n }\n // Ignore various events in particular circumstances\n if (\n // Ignore browser emulated mouse events\n eventType === 'mousedown' && isEmulatingMouseEvents || eventType === 'mousemove' && isEmulatingMouseEvents ||\n // Ignore mousemove if a mousedown didn't occur first\n eventType === 'mousemove' && trackedTouchCount < 1) {\n return;\n }\n // Remove flag after emulated events are finished\n if (isEmulatingMouseEvents && eventType === 'mouseup') {\n if (trackedTouchCount === 0) {\n isEmulatingMouseEvents = false;\n }\n return;\n }\n var isStartEvent = isStartish(eventType) && isPrimaryPointerDown(domEvent);\n var isMoveEvent = isMoveish(eventType);\n var isEndEvent = isEndish(eventType);\n var isScrollEvent = isScroll(eventType);\n var isSelectionChangeEvent = isSelectionChange(eventType);\n var responderEvent = createResponderEvent(domEvent, responderTouchHistoryStore);\n\n /**\n * Record the state of active pointers\n */\n\n if (isStartEvent || isMoveEvent || isEndEvent) {\n if (domEvent.touches) {\n trackedTouchCount = domEvent.touches.length;\n } else {\n if (isStartEvent) {\n trackedTouchCount = 1;\n } else if (isEndEvent) {\n trackedTouchCount = 0;\n }\n }\n responderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent);\n }\n\n /**\n * Responder System logic\n */\n\n var eventPaths = getResponderPaths(domEvent);\n var wasNegotiated = false;\n var wantsResponder;\n\n // If an event occured that might change the current responder...\n if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {\n // If there is already a responder, prune the event paths to the lowest common ancestor\n // of the existing responder and deepest target of the event.\n var currentResponderIdPath = currentResponder.idPath;\n var eventIdPath = eventPaths.idPath;\n if (currentResponderIdPath != null && eventIdPath != null) {\n var lowestCommonAncestor = getLowestCommonAncestor(currentResponderIdPath, eventIdPath);\n if (lowestCommonAncestor != null) {\n var indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor);\n // Skip the current responder so it doesn't receive unexpected \"shouldSet\" events.\n var index = indexOfLowestCommonAncestor + (lowestCommonAncestor === currentResponder.id ? 1 : 0);\n eventPaths = {\n idPath: eventIdPath.slice(index),\n nodePath: eventPaths.nodePath.slice(index)\n };\n } else {\n eventPaths = null;\n }\n }\n if (eventPaths != null) {\n // If a node wants to become the responder, attempt to transfer.\n wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent);\n if (wantsResponder != null) {\n // Sets responder if none exists, or negotates with existing responder.\n attemptTransfer(responderEvent, wantsResponder);\n wasNegotiated = true;\n }\n }\n }\n\n // If there is now a responder, invoke its callbacks for the lifecycle of the gesture.\n if (currentResponder.id != null && currentResponder.node != null) {\n var _currentResponder = currentResponder,\n id = _currentResponder.id,\n node = _currentResponder.node;\n var _getResponderConfig = getResponderConfig(id),\n onResponderStart = _getResponderConfig.onResponderStart,\n onResponderMove = _getResponderConfig.onResponderMove,\n onResponderEnd = _getResponderConfig.onResponderEnd,\n onResponderRelease = _getResponderConfig.onResponderRelease,\n onResponderTerminate = _getResponderConfig.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig.onResponderTerminationRequest;\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node;\n\n // Start\n if (isStartEvent) {\n if (onResponderStart != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderStart';\n onResponderStart(responderEvent);\n }\n }\n // Move\n else if (isMoveEvent) {\n if (onResponderMove != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderMove';\n onResponderMove(responderEvent);\n }\n } else {\n var isTerminateEvent = isCancelish(eventType) ||\n // native context menu\n eventType === 'contextmenu' ||\n // window blur\n eventType === 'blur' && eventTarget === window ||\n // responder (or ancestors) blur\n eventType === 'blur' && eventTarget.contains(node) && domEvent.relatedTarget !== node ||\n // native scroll without using a pointer\n isScrollEvent && trackedTouchCount === 0 ||\n // native scroll on node that is parent of the responder (allow siblings to scroll)\n isScrollEvent && eventTarget.contains(node) && eventTarget !== node ||\n // native select/selectionchange on node\n isSelectionChangeEvent && hasValidSelection(domEvent);\n var isReleaseEvent = isEndEvent && !isTerminateEvent && !hasTargetTouches(node, domEvent.touches);\n\n // End\n if (isEndEvent) {\n if (onResponderEnd != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderEnd';\n onResponderEnd(responderEvent);\n }\n }\n // Release\n if (isReleaseEvent) {\n if (onResponderRelease != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderRelease';\n onResponderRelease(responderEvent);\n }\n changeCurrentResponder(emptyResponder);\n }\n // Terminate\n if (isTerminateEvent) {\n var shouldTerminate = true;\n\n // Responders can still avoid termination but only for these events.\n if (eventType === 'contextmenu' || eventType === 'scroll' || eventType === 'selectionchange') {\n // Only call this function is it wasn't already called during negotiation.\n if (wasNegotiated) {\n shouldTerminate = false;\n } else if (onResponderTerminationRequest != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n if (onResponderTerminationRequest(responderEvent) === false) {\n shouldTerminate = false;\n }\n }\n }\n if (shouldTerminate) {\n if (onResponderTerminate != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n }\n changeCurrentResponder(emptyResponder);\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n }\n }\n }\n }\n}\n\n/**\n * Walk the event path to/from the target node. At each node, stop and call the\n * relevant \"shouldSet\" functions for the given event type. If any of those functions\n * call \"stopPropagation\" on the event, stop searching for a responder.\n */\nfunction findWantsResponder(eventPaths, domEvent, responderEvent) {\n var shouldSetCallbacks = shouldSetResponderEvents[domEvent.type]; // for Flow\n\n if (shouldSetCallbacks != null) {\n var idPath = eventPaths.idPath,\n nodePath = eventPaths.nodePath;\n var shouldSetCallbackCaptureName = shouldSetCallbacks[0];\n var shouldSetCallbackBubbleName = shouldSetCallbacks[1];\n var bubbles = shouldSetCallbacks[2].bubbles;\n var check = function check(id, node, callbackName) {\n var config = getResponderConfig(id);\n var shouldSetCallback = config[callbackName];\n if (shouldSetCallback != null) {\n responderEvent.currentTarget = node;\n if (shouldSetCallback(responderEvent) === true) {\n // Start the path from the potential responder\n var prunedIdPath = idPath.slice(idPath.indexOf(id));\n return {\n id,\n node,\n idPath: prunedIdPath\n };\n }\n }\n };\n\n // capture\n for (var i = idPath.length - 1; i >= 0; i--) {\n var id = idPath[i];\n var node = nodePath[i];\n var result = check(id, node, shouldSetCallbackCaptureName);\n if (result != null) {\n return result;\n }\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n }\n\n // bubble\n if (bubbles) {\n for (var _i = 0; _i < idPath.length; _i++) {\n var _id = idPath[_i];\n var _node = nodePath[_i];\n var _result = check(_id, _node, shouldSetCallbackBubbleName);\n if (_result != null) {\n return _result;\n }\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n }\n } else {\n var _id2 = idPath[0];\n var _node2 = nodePath[0];\n var target = domEvent.target;\n if (target === _node2) {\n return check(_id2, _node2, shouldSetCallbackBubbleName);\n }\n }\n }\n}\n\n/**\n * Attempt to transfer the responder.\n */\nfunction attemptTransfer(responderEvent, wantsResponder) {\n var _currentResponder2 = currentResponder,\n currentId = _currentResponder2.id,\n currentNode = _currentResponder2.node;\n var id = wantsResponder.id,\n node = wantsResponder.node;\n var _getResponderConfig2 = getResponderConfig(id),\n onResponderGrant = _getResponderConfig2.onResponderGrant,\n onResponderReject = _getResponderConfig2.onResponderReject;\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node;\n\n // Set responder\n if (currentId == null) {\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n changeCurrentResponder(wantsResponder);\n }\n // Negotiate with current responder\n else {\n var _getResponderConfig3 = getResponderConfig(currentId),\n onResponderTerminate = _getResponderConfig3.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig3.onResponderTerminationRequest;\n var allowTransfer = true;\n if (onResponderTerminationRequest != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n if (onResponderTerminationRequest(responderEvent) === false) {\n allowTransfer = false;\n }\n }\n if (allowTransfer) {\n // Terminate existing responder\n if (onResponderTerminate != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n }\n // Grant next responder\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n changeCurrentResponder(wantsResponder);\n } else {\n // Reject responder request\n if (onResponderReject != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderReject';\n onResponderReject(responderEvent);\n }\n }\n }\n}\n\n/* ------------ PUBLIC API ------------ */\n\n/**\n * Attach Listeners\n *\n * Use native events as ReactDOM doesn't have a non-plugin API to implement\n * this system.\n */\nvar documentEventsCapturePhase = ['blur', 'scroll'];\nvar documentEventsBubblePhase = [\n// mouse\n'mousedown', 'mousemove', 'mouseup', 'dragstart',\n// touch\n'touchstart', 'touchmove', 'touchend', 'touchcancel',\n// other\n'contextmenu', 'select', 'selectionchange'];\nexport function attachListeners() {\n if (canUseDOM && window.__reactResponderSystemActive == null) {\n window.addEventListener('blur', eventListener);\n documentEventsBubblePhase.forEach(eventType => {\n document.addEventListener(eventType, eventListener);\n });\n documentEventsCapturePhase.forEach(eventType => {\n document.addEventListener(eventType, eventListener, true);\n });\n window.__reactResponderSystemActive = true;\n }\n}\n\n/**\n * Register a node with the ResponderSystem.\n */\nexport function addNode(id, node, config) {\n setResponderId(node, id);\n responderListenersMap.set(id, config);\n}\n\n/**\n * Unregister a node with the ResponderSystem.\n */\nexport function removeNode(id) {\n if (currentResponder.id === id) {\n terminateResponder();\n }\n if (responderListenersMap.has(id)) {\n responderListenersMap.delete(id);\n }\n}\n\n/**\n * Allow the current responder to be terminated from within components to support\n * more complex requirements, such as use with other React libraries for working\n * with scroll views, input views, etc.\n */\nexport function terminateResponder() {\n var _currentResponder3 = currentResponder,\n id = _currentResponder3.id,\n node = _currentResponder3.node;\n if (id != null && node != null) {\n var _getResponderConfig4 = getResponderConfig(id),\n onResponderTerminate = _getResponderConfig4.onResponderTerminate;\n if (onResponderTerminate != null) {\n var event = createResponderEvent({}, responderTouchHistoryStore);\n event.currentTarget = node;\n onResponderTerminate(event);\n }\n changeCurrentResponder(emptyResponder);\n }\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n}\n\n/**\n * Allow unit tests to inspect the current responder in the system.\n * FOR TESTING ONLY.\n */\nexport function getResponderNode() {\n return currentResponder.node;\n}","/**\n * Copyright (c) Nicolas Gallagher\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 */\n\n/**\n * Hook for integrating the Responder System into React\n *\n * function SomeComponent({ onStartShouldSetResponder }) {\n * const ref = useRef(null);\n * useResponderEvents(ref, { onStartShouldSetResponder });\n * return
\n * }\n */\n\nimport * as React from 'react';\nimport * as ResponderSystem from './ResponderSystem';\nvar emptyObject = {};\nvar idCounter = 0;\nfunction useStable(getInitialValue) {\n var ref = React.useRef(null);\n if (ref.current == null) {\n ref.current = getInitialValue();\n }\n return ref.current;\n}\nexport default function useResponderEvents(hostRef, config) {\n if (config === void 0) {\n config = emptyObject;\n }\n var id = useStable(() => idCounter++);\n var isAttachedRef = React.useRef(false);\n\n // This is a separate effects so it doesn't run when the config changes.\n // On initial mount, attach global listeners if needed.\n // On unmount, remove node potentially attached to the Responder System.\n React.useEffect(() => {\n ResponderSystem.attachListeners();\n return () => {\n ResponderSystem.removeNode(id);\n };\n }, [id]);\n\n // Register and unregister with the Responder System as necessary\n React.useEffect(() => {\n var _config = config,\n onMoveShouldSetResponder = _config.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = _config.onMoveShouldSetResponderCapture,\n onScrollShouldSetResponder = _config.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = _config.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = _config.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = _config.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = _config.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = _config.onStartShouldSetResponderCapture;\n var requiresResponderSystem = onMoveShouldSetResponder != null || onMoveShouldSetResponderCapture != null || onScrollShouldSetResponder != null || onScrollShouldSetResponderCapture != null || onSelectionChangeShouldSetResponder != null || onSelectionChangeShouldSetResponderCapture != null || onStartShouldSetResponder != null || onStartShouldSetResponderCapture != null;\n var node = hostRef.current;\n if (requiresResponderSystem) {\n ResponderSystem.addNode(id, node, config);\n isAttachedRef.current = true;\n } else if (isAttachedRef.current) {\n ResponderSystem.removeNode(id);\n isAttachedRef.current = false;\n }\n }, [config, hostRef, id]);\n React.useDebugValue({\n isResponder: hostRef.current === ResponderSystem.getResponderNode()\n });\n React.useDebugValue(config);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport { createContext } from 'react';\nvar TextAncestorContext = /*#__PURE__*/createContext(false);\nexport default TextAncestorContext;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"hrefAttrs\", \"onLayout\", \"onMoveShouldSetResponder\", \"onMoveShouldSetResponderCapture\", \"onResponderEnd\", \"onResponderGrant\", \"onResponderMove\", \"onResponderReject\", \"onResponderRelease\", \"onResponderStart\", \"onResponderTerminate\", \"onResponderTerminationRequest\", \"onScrollShouldSetResponder\", \"onScrollShouldSetResponderCapture\", \"onSelectionChangeShouldSetResponder\", \"onSelectionChangeShouldSetResponderCapture\", \"onStartShouldSetResponder\", \"onStartShouldSetResponderCapture\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\nimport { useLocaleContext, getLocaleDirection } from '../../modules/useLocale';\nvar forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {\n href: true,\n lang: true,\n onScroll: true,\n onWheel: true,\n pointerEvents: true\n});\nvar pickProps = props => pick(props, forwardPropsList);\nvar View = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var hrefAttrs = props.hrefAttrs,\n onLayout = props.onLayout,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n React.Children.toArray(props.children).forEach(item => {\n if (typeof item === 'string') {\n console.error(\"Unexpected text node: \" + item + \". A text node cannot be a child of a .\");\n }\n });\n }\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n });\n var component = 'div';\n var langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n var componentDirection = props.dir || langDirection;\n var writingDirection = componentDirection || contextDirection;\n var supportedProps = pickProps(rest);\n supportedProps.dir = componentDirection;\n supportedProps.style = [styles.view$raw, hasTextAncestor && styles.inline, props.style];\n if (props.href != null) {\n component = 'a';\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n if (download != null) {\n supportedProps.download = download;\n }\n if (rel != null) {\n supportedProps.rel = rel;\n }\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\n }\n }\n }\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement(component, supportedProps, {\n writingDirection\n });\n});\nView.displayName = 'View';\nvar styles = StyleSheet.create({\n view$raw: {\n alignItems: 'stretch',\n backgroundColor: 'transparent',\n border: '0 solid black',\n boxSizing: 'border-box',\n display: 'flex',\n flexBasis: 'auto',\n flexDirection: 'column',\n flexShrink: 0,\n listStyle: 'none',\n margin: 0,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n position: 'relative',\n textDecoration: 'none',\n zIndex: 0\n },\n inline: {\n display: 'inline-flex'\n }\n});\nexport default View;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport invariant from 'fbjs/lib/invariant';\nimport canUseDOM from '../../modules/canUseDom';\nvar dimensions = {\n window: {\n fontScale: 1,\n height: 0,\n scale: 1,\n width: 0\n },\n screen: {\n fontScale: 1,\n height: 0,\n scale: 1,\n width: 0\n }\n};\nvar listeners = {};\nvar shouldInit = canUseDOM;\nfunction update() {\n if (!canUseDOM) {\n return;\n }\n var win = window;\n var height;\n var width;\n\n /**\n * iOS does not update viewport dimensions on keyboard open/close.\n * window.visualViewport(https://developer.mozilla.org/en-US/docs/Web/API/VisualViewport)\n * is used instead of document.documentElement.clientHeight (which remains as a fallback)\n */\n if (win.visualViewport) {\n var visualViewport = win.visualViewport;\n /**\n * We are multiplying by scale because height and width from visual viewport\n * also react to pinch zoom, and become smaller when zoomed. But it is not desired\n * behaviour, since originally documentElement client height and width were used,\n * and they do not react to pinch zoom.\n */\n height = Math.round(visualViewport.height * visualViewport.scale);\n width = Math.round(visualViewport.width * visualViewport.scale);\n } else {\n var docEl = win.document.documentElement;\n height = docEl.clientHeight;\n width = docEl.clientWidth;\n }\n dimensions.window = {\n fontScale: 1,\n height,\n scale: win.devicePixelRatio || 1,\n width\n };\n dimensions.screen = {\n fontScale: 1,\n height: win.screen.height,\n scale: win.devicePixelRatio || 1,\n width: win.screen.width\n };\n}\nfunction handleResize() {\n update();\n if (Array.isArray(listeners['change'])) {\n listeners['change'].forEach(handler => handler(dimensions));\n }\n}\nexport default class Dimensions {\n static get(dimension) {\n if (shouldInit) {\n shouldInit = false;\n update();\n }\n invariant(dimensions[dimension], \"No dimension set for key \" + dimension);\n return dimensions[dimension];\n }\n static set(initialDimensions) {\n if (initialDimensions) {\n if (canUseDOM) {\n invariant(false, 'Dimensions cannot be set in the browser');\n } else {\n if (initialDimensions.screen != null) {\n dimensions.screen = initialDimensions.screen;\n }\n if (initialDimensions.window != null) {\n dimensions.window = initialDimensions.window;\n }\n }\n }\n }\n static addEventListener(type, handler) {\n listeners[type] = listeners[type] || [];\n listeners[type].push(handler);\n return {\n remove: () => {\n this.removeEventListener(type, handler);\n }\n };\n }\n static removeEventListener(type, handler) {\n if (Array.isArray(listeners[type])) {\n listeners[type] = listeners[type].filter(_handler => _handler !== handler);\n }\n }\n}\nif (canUseDOM) {\n if (window.visualViewport) {\n window.visualViewport.addEventListener('resize', handleResize, false);\n } else {\n window.addEventListener('resize', handleResize, false);\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}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nvar assets = [];\nexport function registerAsset(asset) {\n // `push` returns new array length, so the first asset will\n // get id 1 (not 0) to make the value truthy\n return assets.push(asset);\n}\nexport function getAssetByID(assetId) {\n return assets[assetId - 1];\n}","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nvar dataUriPattern = /^data:/;\nexport class ImageUriCache {\n static has(uri) {\n var entries = ImageUriCache._entries;\n var isDataUri = dataUriPattern.test(uri);\n return isDataUri || Boolean(entries[uri]);\n }\n static add(uri) {\n var entries = ImageUriCache._entries;\n var lastUsedTimestamp = Date.now();\n if (entries[uri]) {\n entries[uri].lastUsedTimestamp = lastUsedTimestamp;\n entries[uri].refCount += 1;\n } else {\n entries[uri] = {\n lastUsedTimestamp,\n refCount: 1\n };\n }\n }\n static remove(uri) {\n var entries = ImageUriCache._entries;\n if (entries[uri]) {\n entries[uri].refCount -= 1;\n }\n // Free up entries when the cache is \"full\"\n ImageUriCache._cleanUpIfNeeded();\n }\n static _cleanUpIfNeeded() {\n var entries = ImageUriCache._entries;\n var imageUris = Object.keys(entries);\n if (imageUris.length + 1 > ImageUriCache._maximumEntries) {\n var leastRecentlyUsedKey;\n var leastRecentlyUsedEntry;\n imageUris.forEach(uri => {\n var entry = entries[uri];\n if ((!leastRecentlyUsedEntry || entry.lastUsedTimestamp < leastRecentlyUsedEntry.lastUsedTimestamp) && entry.refCount === 0) {\n leastRecentlyUsedKey = uri;\n leastRecentlyUsedEntry = entry;\n }\n });\n if (leastRecentlyUsedKey) {\n delete entries[leastRecentlyUsedKey];\n }\n }\n }\n}\nImageUriCache._maximumEntries = 256;\nImageUriCache._entries = {};\nvar id = 0;\nvar requests = {};\nvar ImageLoader = {\n abort(requestId) {\n var image = requests[\"\" + requestId];\n if (image) {\n image.onerror = null;\n image.onload = null;\n image = null;\n delete requests[\"\" + requestId];\n }\n },\n getSize(uri, success, failure) {\n var complete = false;\n var interval = setInterval(callback, 16);\n var requestId = ImageLoader.load(uri, callback, errorCallback);\n function callback() {\n var image = requests[\"\" + requestId];\n if (image) {\n var naturalHeight = image.naturalHeight,\n naturalWidth = image.naturalWidth;\n if (naturalHeight && naturalWidth) {\n success(naturalWidth, naturalHeight);\n complete = true;\n }\n }\n if (complete) {\n ImageLoader.abort(requestId);\n clearInterval(interval);\n }\n }\n function errorCallback() {\n if (typeof failure === 'function') {\n failure();\n }\n ImageLoader.abort(requestId);\n clearInterval(interval);\n }\n },\n has(uri) {\n return ImageUriCache.has(uri);\n },\n load(uri, onLoad, onError) {\n id += 1;\n var image = new window.Image();\n image.onerror = onError;\n image.onload = e => {\n // avoid blocking the main thread\n var onDecode = () => onLoad({\n nativeEvent: e\n });\n if (typeof image.decode === 'function') {\n // Safari currently throws exceptions when decoding svgs.\n // We want to catch that error and allow the load handler\n // to be forwarded to the onLoad handler in this case\n image.decode().then(onDecode, onDecode);\n } else {\n setTimeout(onDecode, 0);\n }\n };\n image.src = uri;\n requests[\"\" + id] = image;\n return id;\n },\n prefetch(uri) {\n return new Promise((resolve, reject) => {\n ImageLoader.load(uri, () => {\n // Add the uri to the cache so it can be immediately displayed when used\n // but also immediately remove it to correctly reflect that it has no active references\n ImageUriCache.add(uri);\n ImageUriCache.remove(uri);\n resolve();\n }, reject);\n });\n },\n queryCache(uris) {\n var result = {};\n uris.forEach(u => {\n if (ImageUriCache.has(u)) {\n result[u] = 'disk/memory';\n }\n });\n return Promise.resolve(result);\n }\n};\nexport default ImageLoader;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport Dimensions from '../Dimensions';\n\n/**\n * PixelRatio gives access to the device pixel density.\n */\nexport default class PixelRatio {\n /**\n * Returns the device pixel density.\n */\n static get() {\n return Dimensions.get('window').scale;\n }\n\n /**\n * No equivalent for Web\n */\n static getFontScale() {\n return Dimensions.get('window').fontScale || PixelRatio.get();\n }\n\n /**\n * Converts a layout size (dp) to pixel size (px).\n * Guaranteed to return an integer number.\n */\n static getPixelSizeForLayoutSize(layoutSize) {\n return Math.round(layoutSize * PixelRatio.get());\n }\n\n /**\n * Rounds a layout size (dp) to the nearest layout size that corresponds to\n * an integer number of pixels. For example, on a device with a PixelRatio\n * of 3, `PixelRatio.roundToNearestPixel(8.4) = 8.33`, which corresponds to\n * exactly (8.33 * 3) = 25 pixels.\n */\n static roundToNearestPixel(layoutSize) {\n var ratio = PixelRatio.get();\n return Math.round(layoutSize * ratio) / ratio;\n }\n}","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"aria-label\", \"blurRadius\", \"defaultSource\", \"draggable\", \"onError\", \"onLayout\", \"onLoad\", \"onLoadEnd\", \"onLoadStart\", \"pointerEvents\", \"source\", \"style\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport { getAssetByID } from '../../modules/AssetRegistry';\nimport { createBoxShadowValue } from '../StyleSheet/preprocess';\nimport ImageLoader from '../../modules/ImageLoader';\nimport PixelRatio from '../PixelRatio';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\nimport View from '../View';\nimport { warnOnce } from '../../modules/warnOnce';\nvar ERRORED = 'ERRORED';\nvar LOADED = 'LOADED';\nvar LOADING = 'LOADING';\nvar IDLE = 'IDLE';\nvar _filterId = 0;\nvar svgDataUriPattern = /^(data:image\\/svg\\+xml;utf8,)(.*)/;\nfunction createTintColorSVG(tintColor, id) {\n return tintColor && id != null ? /*#__PURE__*/React.createElement(\"svg\", {\n style: {\n position: 'absolute',\n height: 0,\n visibility: 'hidden',\n width: 0\n }\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"tint-\" + id,\n suppressHydrationWarning: true\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodColor: \"\" + tintColor,\n key: tintColor\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"SourceAlpha\",\n operator: \"atop\"\n })))) : null;\n}\nfunction extractNonStandardStyleProps(style, blurRadius, filterId, tintColorProp) {\n var flatStyle = StyleSheet.flatten(style);\n var filter = flatStyle.filter,\n resizeMode = flatStyle.resizeMode,\n shadowOffset = flatStyle.shadowOffset,\n tintColor = flatStyle.tintColor;\n if (flatStyle.resizeMode) {\n warnOnce('Image.style.resizeMode', 'Image: style.resizeMode is deprecated. Please use props.resizeMode.');\n }\n if (flatStyle.tintColor) {\n warnOnce('Image.style.tintColor', 'Image: style.tintColor is deprecated. Please use props.tintColor.');\n }\n\n // Add CSS filters\n // React Native exposes these features as props and proprietary styles\n var filters = [];\n var _filter = null;\n if (filter) {\n filters.push(filter);\n }\n if (blurRadius) {\n filters.push(\"blur(\" + blurRadius + \"px)\");\n }\n if (shadowOffset) {\n var shadowString = createBoxShadowValue(flatStyle);\n if (shadowString) {\n filters.push(\"drop-shadow(\" + shadowString + \")\");\n }\n }\n if ((tintColorProp || tintColor) && filterId != null) {\n filters.push(\"url(#tint-\" + filterId + \")\");\n }\n if (filters.length > 0) {\n _filter = filters.join(' ');\n }\n return [resizeMode, _filter, tintColor];\n}\nfunction resolveAssetDimensions(source) {\n if (typeof source === 'number') {\n var _getAssetByID = getAssetByID(source),\n _height = _getAssetByID.height,\n _width = _getAssetByID.width;\n return {\n height: _height,\n width: _width\n };\n } else if (source != null && !Array.isArray(source) && typeof source === 'object') {\n var _height2 = source.height,\n _width2 = source.width;\n return {\n height: _height2,\n width: _width2\n };\n }\n}\nfunction resolveAssetUri(source) {\n var uri = null;\n if (typeof source === 'number') {\n // get the URI from the packager\n var asset = getAssetByID(source);\n if (asset == null) {\n throw new Error(\"Image: asset with ID \\\"\" + source + \"\\\" could not be found. Please check the image source or packager.\");\n }\n var scale = asset.scales[0];\n if (asset.scales.length > 1) {\n var preferredScale = PixelRatio.get();\n // Get the scale which is closest to the preferred scale\n scale = asset.scales.reduce((prev, curr) => Math.abs(curr - preferredScale) < Math.abs(prev - preferredScale) ? curr : prev);\n }\n var scaleSuffix = scale !== 1 ? \"@\" + scale + \"x\" : '';\n uri = asset ? asset.httpServerLocation + \"/\" + asset.name + scaleSuffix + \".\" + asset.type : '';\n } else if (typeof source === 'string') {\n uri = source;\n } else if (source && typeof source.uri === 'string') {\n uri = source.uri;\n }\n if (uri) {\n var match = uri.match(svgDataUriPattern);\n // inline SVG markup may contain characters (e.g., #, \") that need to be escaped\n if (match) {\n var prefix = match[1],\n svg = match[2];\n var encodedSvg = encodeURIComponent(svg);\n return \"\" + prefix + encodedSvg;\n }\n }\n return uri;\n}\nvar Image = /*#__PURE__*/React.forwardRef((props, ref) => {\n var ariaLabel = props['aria-label'],\n blurRadius = props.blurRadius,\n defaultSource = props.defaultSource,\n draggable = props.draggable,\n onError = props.onError,\n onLayout = props.onLayout,\n onLoad = props.onLoad,\n onLoadEnd = props.onLoadEnd,\n onLoadStart = props.onLoadStart,\n pointerEvents = props.pointerEvents,\n source = props.source,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n if (props.children) {\n throw new Error('The component cannot contain children. If you want to render content on top of the image, consider using the component or absolute positioning.');\n }\n }\n var _React$useState = React.useState(() => {\n var uri = resolveAssetUri(source);\n if (uri != null) {\n var isLoaded = ImageLoader.has(uri);\n if (isLoaded) {\n return LOADED;\n }\n }\n return IDLE;\n }),\n state = _React$useState[0],\n updateState = _React$useState[1];\n var _React$useState2 = React.useState({}),\n layout = _React$useState2[0],\n updateLayout = _React$useState2[1];\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hiddenImageRef = React.useRef(null);\n var filterRef = React.useRef(_filterId++);\n var requestRef = React.useRef(null);\n var shouldDisplaySource = state === LOADED || state === LOADING && defaultSource == null;\n var _extractNonStandardSt = extractNonStandardStyleProps(style, blurRadius, filterRef.current, props.tintColor),\n _resizeMode = _extractNonStandardSt[0],\n filter = _extractNonStandardSt[1],\n _tintColor = _extractNonStandardSt[2];\n var resizeMode = props.resizeMode || _resizeMode || 'cover';\n var tintColor = props.tintColor || _tintColor;\n var selectedSource = shouldDisplaySource ? source : defaultSource;\n var displayImageUri = resolveAssetUri(selectedSource);\n var imageSizeStyle = resolveAssetDimensions(selectedSource);\n var backgroundImage = displayImageUri ? \"url(\\\"\" + displayImageUri + \"\\\")\" : null;\n var backgroundSize = getBackgroundSize();\n\n // Accessibility image allows users to trigger the browser's image context menu\n var hiddenImage = displayImageUri ? createElement('img', {\n alt: ariaLabel || '',\n style: styles.accessibilityImage$raw,\n draggable: draggable || false,\n ref: hiddenImageRef,\n src: displayImageUri\n }) : null;\n function getBackgroundSize() {\n if (hiddenImageRef.current != null && (resizeMode === 'center' || resizeMode === 'repeat')) {\n var _hiddenImageRef$curre = hiddenImageRef.current,\n naturalHeight = _hiddenImageRef$curre.naturalHeight,\n naturalWidth = _hiddenImageRef$curre.naturalWidth;\n var _height3 = layout.height,\n _width3 = layout.width;\n if (naturalHeight && naturalWidth && _height3 && _width3) {\n var scaleFactor = Math.min(1, _width3 / naturalWidth, _height3 / naturalHeight);\n var x = Math.ceil(scaleFactor * naturalWidth);\n var y = Math.ceil(scaleFactor * naturalHeight);\n return x + \"px \" + y + \"px\";\n }\n }\n }\n function handleLayout(e) {\n if (resizeMode === 'center' || resizeMode === 'repeat' || onLayout) {\n var _layout = e.nativeEvent.layout;\n onLayout && onLayout(e);\n updateLayout(_layout);\n }\n }\n\n // Image loading\n var uri = resolveAssetUri(source);\n React.useEffect(() => {\n abortPendingRequest();\n if (uri != null) {\n updateState(LOADING);\n if (onLoadStart) {\n onLoadStart();\n }\n requestRef.current = ImageLoader.load(uri, function load(e) {\n updateState(LOADED);\n if (onLoad) {\n onLoad(e);\n }\n if (onLoadEnd) {\n onLoadEnd();\n }\n }, function error() {\n updateState(ERRORED);\n if (onError) {\n onError({\n nativeEvent: {\n error: \"Failed to load resource \" + uri + \" (404)\"\n }\n });\n }\n if (onLoadEnd) {\n onLoadEnd();\n }\n });\n }\n function abortPendingRequest() {\n if (requestRef.current != null) {\n ImageLoader.abort(requestRef.current);\n requestRef.current = null;\n }\n }\n return abortPendingRequest;\n }, [uri, requestRef, updateState, onError, onLoad, onLoadEnd, onLoadStart]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n \"aria-label\": ariaLabel,\n onLayout: handleLayout,\n pointerEvents: pointerEvents,\n ref: ref,\n style: [styles.root, hasTextAncestor && styles.inline, imageSizeStyle, style, styles.undo,\n // TEMP: avoid deprecated shadow props regression\n // until Image refactored to use createElement.\n {\n boxShadow: null\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.image, resizeModeStyles[resizeMode], {\n backgroundImage,\n filter\n }, backgroundSize != null && {\n backgroundSize\n }],\n suppressHydrationWarning: true\n }), hiddenImage, createTintColorSVG(tintColor, filterRef.current));\n});\nImage.displayName = 'Image';\n\n// $FlowIgnore: This is the correct type, but casting makes it unhappy since the variables aren't defined yet\nvar ImageWithStatics = Image;\nImageWithStatics.getSize = function (uri, success, failure) {\n ImageLoader.getSize(uri, success, failure);\n};\nImageWithStatics.prefetch = function (uri) {\n return ImageLoader.prefetch(uri);\n};\nImageWithStatics.queryCache = function (uris) {\n return ImageLoader.queryCache(uris);\n};\nvar styles = StyleSheet.create({\n root: {\n flexBasis: 'auto',\n overflow: 'hidden',\n zIndex: 0\n },\n inline: {\n display: 'inline-flex'\n },\n undo: {\n // These styles are converted to CSS filters applied to the\n // element displaying the background image.\n blurRadius: null,\n shadowColor: null,\n shadowOpacity: null,\n shadowOffset: null,\n shadowRadius: null,\n tintColor: null,\n // These styles are not supported\n overlayColor: null,\n resizeMode: null\n },\n image: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n backgroundColor: 'transparent',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n height: '100%',\n width: '100%',\n zIndex: -1\n }),\n accessibilityImage$raw: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n opacity: 0,\n width: '100%',\n zIndex: -1\n })\n});\nvar resizeModeStyles = StyleSheet.create({\n center: {\n backgroundSize: 'auto'\n },\n contain: {\n backgroundSize: 'contain'\n },\n cover: {\n backgroundSize: 'cover'\n },\n none: {\n backgroundPosition: '0',\n backgroundSize: 'auto'\n },\n repeat: {\n backgroundPosition: '0',\n backgroundRepeat: 'repeat',\n backgroundSize: 'auto'\n },\n stretch: {\n backgroundSize: '100% 100%'\n }\n});\nexport default ImageWithStatics;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animating\", \"color\", \"hidesWhenStopped\", \"size\", \"style\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar createSvgCircle = style => /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"16\",\n cy: \"16\",\n fill: \"none\",\n r: \"14\",\n strokeWidth: \"4\",\n style: style\n});\nvar ActivityIndicator = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var _props$animating = props.animating,\n animating = _props$animating === void 0 ? true : _props$animating,\n _props$color = props.color,\n color = _props$color === void 0 ? '#1976D2' : _props$color,\n _props$hidesWhenStopp = props.hidesWhenStopped,\n hidesWhenStopped = _props$hidesWhenStopp === void 0 ? true : _props$hidesWhenStopp,\n _props$size = props.size,\n size = _props$size === void 0 ? 'small' : _props$size,\n style = props.style,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var svg = /*#__PURE__*/React.createElement(\"svg\", {\n height: \"100%\",\n viewBox: \"0 0 32 32\",\n width: \"100%\"\n }, createSvgCircle({\n stroke: color,\n opacity: 0.2\n }), createSvgCircle({\n stroke: color,\n strokeDasharray: 80,\n strokeDashoffset: 60\n }));\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n \"aria-valuemax\": 1,\n \"aria-valuemin\": 0,\n ref: forwardedRef,\n role: \"progressbar\",\n style: [styles.container, style]\n }), /*#__PURE__*/React.createElement(View, {\n children: svg,\n style: [typeof size === 'number' ? {\n height: size,\n width: size\n } : indicatorSizes[size], styles.animation, !animating && styles.animationPause, !animating && hidesWhenStopped && styles.hidesWhenStopped]\n }));\n});\nActivityIndicator.displayName = 'ActivityIndicator';\nvar styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center'\n },\n hidesWhenStopped: {\n visibility: 'hidden'\n },\n animation: {\n animationDuration: '0.75s',\n animationKeyframes: [{\n '0%': {\n transform: 'rotate(0deg)'\n },\n '100%': {\n transform: 'rotate(360deg)'\n }\n }],\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite'\n },\n animationPause: {\n animationPlayState: 'paused'\n }\n});\nvar indicatorSizes = StyleSheet.create({\n small: {\n width: 20,\n height: 20\n },\n large: {\n width: 36,\n height: 36\n }\n});\nexport default ActivityIndicator;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * \n */\n\n'use strict';\n\n/*\n * @returns {bool} true if different, false if equal\n */\nvar deepDiffer = function deepDiffer(one, two, maxDepth) {\n if (maxDepth === void 0) {\n maxDepth = -1;\n }\n if (maxDepth === 0) {\n return true;\n }\n if (one === two) {\n // Short circuit on identical object references instead of traversing them.\n return false;\n }\n if (typeof one === 'function' && typeof two === 'function') {\n // We consider all functions equal\n return false;\n }\n if (typeof one !== 'object' || one === null) {\n // Primitives can be directly compared\n return one !== two;\n }\n if (typeof two !== 'object' || two === null) {\n // We know they are different because the previous case would have triggered\n // otherwise.\n return true;\n }\n if (one.constructor !== two.constructor) {\n return true;\n }\n if (Array.isArray(one)) {\n // We know two is also an array because the constructors are equal\n var len = one.length;\n if (two.length !== len) {\n return true;\n }\n for (var ii = 0; ii < len; ii++) {\n if (deepDiffer(one[ii], two[ii], maxDepth - 1)) {\n return true;\n }\n }\n } else {\n for (var key in one) {\n if (deepDiffer(one[key], two[key], maxDepth - 1)) {\n return true;\n }\n }\n for (var twoKey in two) {\n // The only case we haven't checked yet is keys that are in two but aren't\n // in one, which means they are different.\n if (one[twoKey] === undefined && two[twoKey] !== undefined) {\n return true;\n }\n }\n }\n return false;\n};\nexport default deepDiffer;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nvar Platform = {\n OS: 'web',\n select: obj => 'web' in obj ? obj.web : obj.default,\n get isTesting() {\n if (process.env.NODE_ENV === 'test') {\n return true;\n }\n return false;\n }\n};\nexport default Platform;","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"colors\", \"enabled\", \"onRefresh\", \"progressBackgroundColor\", \"progressViewOffset\", \"refreshing\", \"size\", \"tintColor\", \"title\", \"titleColor\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport View from '../View';\nimport React from 'react';\nfunction RefreshControl(props) {\n var colors = props.colors,\n enabled = props.enabled,\n onRefresh = props.onRefresh,\n progressBackgroundColor = props.progressBackgroundColor,\n progressViewOffset = props.progressViewOffset,\n refreshing = props.refreshing,\n size = props.size,\n tintColor = props.tintColor,\n title = props.title,\n titleColor = props.titleColor,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n return /*#__PURE__*/React.createElement(View, rest);\n}\nexport default RefreshControl;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport UIManager from '../../exports/UIManager';\n\n/**\n * This class is responsible for coordinating the \"focused\"\n * state for TextInputs. All calls relating to the keyboard\n * should be funneled through here\n */\nvar TextInputState = {\n /**\n * Internal state\n */\n _currentlyFocusedNode: null,\n /**\n * Returns the ID of the currently focused text field, if one exists\n * If no text field is focused it returns null\n */\n currentlyFocusedField() {\n if (document.activeElement !== this._currentlyFocusedNode) {\n this._currentlyFocusedNode = null;\n }\n return this._currentlyFocusedNode;\n },\n /**\n * @param {Object} TextInputID id of the text field to focus\n * Focuses the specified text field\n * noop if the text field was already focused\n */\n focusTextInput(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = textFieldNode;\n if (document.activeElement !== textFieldNode) {\n UIManager.focus(textFieldNode);\n }\n }\n },\n /**\n * @param {Object} textFieldNode id of the text field to focus\n * Unfocuses the specified text field\n * noop if it wasn't focused\n */\n blurTextInput(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = null;\n if (document.activeElement === textFieldNode) {\n UIManager.blur(textFieldNode);\n }\n }\n }\n};\nexport default TextInputState;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport TextInputState from '../TextInputState';\nvar dismissKeyboard = () => {\n TextInputState.blurTextInput(TextInputState.currentlyFocusedField());\n};\nexport default dismissKeyboard;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"onScroll\", \"onTouchMove\", \"onWheel\", \"scrollEnabled\", \"scrollEventThrottle\", \"showsHorizontalScrollIndicator\", \"showsVerticalScrollIndicator\", \"style\"];\n/**\n * Copyright (c) Nicolas Gallagher.\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 */\n\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport useMergeRefs from '../../modules/useMergeRefs';\nfunction normalizeScrollEvent(e) {\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return e.target.scrollLeft;\n },\n get y() {\n return e.target.scrollTop;\n }\n },\n contentSize: {\n get height() {\n return e.target.scrollHeight;\n },\n get width() {\n return e.target.scrollWidth;\n }\n },\n layoutMeasurement: {\n get height() {\n return e.target.offsetHeight;\n },\n get width() {\n return e.target.offsetWidth;\n }\n }\n },\n timeStamp: Date.now()\n };\n}\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n var timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\n\n/**\n * Encapsulates the Web-specific scroll throttling and disabling logic\n */\nvar ScrollViewBase = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var onScroll = props.onScroll,\n onTouchMove = props.onTouchMove,\n onWheel = props.onWheel,\n _props$scrollEnabled = props.scrollEnabled,\n scrollEnabled = _props$scrollEnabled === void 0 ? true : _props$scrollEnabled,\n _props$scrollEventThr = props.scrollEventThrottle,\n scrollEventThrottle = _props$scrollEventThr === void 0 ? 0 : _props$scrollEventThr,\n showsHorizontalScrollIndicator = props.showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator = props.showsVerticalScrollIndicator,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n var scrollState = React.useRef({\n isScrolling: false,\n scrollLastTick: 0\n });\n var scrollTimeout = React.useRef(null);\n var scrollRef = React.useRef(null);\n function createPreventableScrollHandler(handler) {\n return e => {\n if (scrollEnabled) {\n if (handler) {\n handler(e);\n }\n }\n };\n }\n function handleScroll(e) {\n e.stopPropagation();\n if (e.target === scrollRef.current) {\n e.persist();\n // A scroll happened, so the scroll resets the scrollend timeout.\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n scrollTimeout.current = setTimeout(() => {\n handleScrollEnd(e);\n }, 100);\n if (scrollState.current.isScrolling) {\n // Scroll last tick may have changed, check if we need to notify\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n handleScrollTick(e);\n }\n } else {\n // Weren't scrolling, so we must have just started\n handleScrollStart(e);\n }\n }\n }\n function handleScrollStart(e) {\n scrollState.current.isScrolling = true;\n handleScrollTick(e);\n }\n function handleScrollTick(e) {\n scrollState.current.scrollLastTick = Date.now();\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n }\n function handleScrollEnd(e) {\n scrollState.current.isScrolling = false;\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n }\n var hideScrollbar = showsHorizontalScrollIndicator === false || showsVerticalScrollIndicator === false;\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n onScroll: handleScroll,\n onTouchMove: createPreventableScrollHandler(onTouchMove),\n onWheel: createPreventableScrollHandler(onWheel),\n ref: useMergeRefs(scrollRef, forwardedRef),\n style: [style, !scrollEnabled && styles.scrollDisabled, hideScrollbar && styles.hideScrollbar]\n }));\n});\n\n// Chrome doesn't support e.preventDefault in this case; touch-action must be\n// used to disable scrolling.\n// https://developers.google.com/web/updates/2017/01/scrolling-intervention\nvar styles = StyleSheet.create({\n scrollDisabled: {\n overflowX: 'hidden',\n overflowY: 'hidden',\n touchAction: 'none'\n },\n hideScrollbar: {\n scrollbarWidth: 'none'\n }\n});\nexport default ScrollViewBase;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"contentContainerStyle\", \"horizontal\", \"onContentSizeChange\", \"refreshControl\", \"stickyHeaderIndices\", \"pagingEnabled\", \"forwardedRef\", \"keyboardDismissMode\", \"onScroll\", \"centerContent\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport Dimensions from '../Dimensions';\nimport dismissKeyboard from '../../modules/dismissKeyboard';\nimport invariant from 'fbjs/lib/invariant';\nimport mergeRefs from '../../modules/mergeRefs';\nimport Platform from '../Platform';\nimport ScrollViewBase from './ScrollViewBase';\nimport StyleSheet from '../StyleSheet';\nimport TextInputState from '../../modules/TextInputState';\nimport UIManager from '../UIManager';\nimport View from '../View';\nimport React from 'react';\nimport warning from 'fbjs/lib/warning';\nvar emptyObject = {};\nvar IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;\nclass ScrollView extends React.Component {\n constructor() {\n super(...arguments);\n this._scrollNodeRef = null;\n this._innerViewRef = null;\n this.isTouching = false;\n this.lastMomentumScrollBeginTime = 0;\n this.lastMomentumScrollEndTime = 0;\n this.observedScrollSinceBecomingResponder = false;\n this.becameResponderWhileAnimating = false;\n this.scrollResponderHandleScrollShouldSetResponder = () => {\n return this.isTouching;\n };\n this.scrollResponderHandleStartShouldSetResponderCapture = e => {\n // First see if we want to eat taps while the keyboard is up\n // var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n // if (!this.props.keyboardShouldPersistTaps &&\n // currentlyFocusedTextInput != null &&\n // e.target !== currentlyFocusedTextInput) {\n // return true;\n // }\n return this.scrollResponderIsAnimating();\n };\n this.scrollResponderHandleTerminationRequest = () => {\n return !this.observedScrollSinceBecomingResponder;\n };\n this.scrollResponderHandleTouchEnd = e => {\n var nativeEvent = e.nativeEvent;\n this.isTouching = nativeEvent.touches.length !== 0;\n this.props.onTouchEnd && this.props.onTouchEnd(e);\n };\n this.scrollResponderHandleResponderRelease = e => {\n this.props.onResponderRelease && this.props.onResponderRelease(e);\n\n // By default scroll views will unfocus a textField\n // if another touch occurs outside of it\n var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n if (!this.props.keyboardShouldPersistTaps && currentlyFocusedTextInput != null && e.target !== currentlyFocusedTextInput && !this.observedScrollSinceBecomingResponder && !this.becameResponderWhileAnimating) {\n this.props.onScrollResponderKeyboardDismissed && this.props.onScrollResponderKeyboardDismissed(e);\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n };\n this.scrollResponderHandleScroll = e => {\n this.observedScrollSinceBecomingResponder = true;\n this.props.onScroll && this.props.onScroll(e);\n };\n this.scrollResponderHandleResponderGrant = e => {\n this.observedScrollSinceBecomingResponder = false;\n this.props.onResponderGrant && this.props.onResponderGrant(e);\n this.becameResponderWhileAnimating = this.scrollResponderIsAnimating();\n };\n this.scrollResponderHandleScrollBeginDrag = e => {\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n this.scrollResponderHandleScrollEndDrag = e => {\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n };\n this.scrollResponderHandleMomentumScrollBegin = e => {\n this.lastMomentumScrollBeginTime = Date.now();\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n this.scrollResponderHandleMomentumScrollEnd = e => {\n this.lastMomentumScrollEndTime = Date.now();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n };\n this.scrollResponderHandleTouchStart = e => {\n this.isTouching = true;\n this.props.onTouchStart && this.props.onTouchStart(e);\n };\n this.scrollResponderHandleTouchMove = e => {\n this.props.onTouchMove && this.props.onTouchMove(e);\n };\n this.scrollResponderIsAnimating = () => {\n var now = Date.now();\n var timeSinceLastMomentumScrollEnd = now - this.lastMomentumScrollEndTime;\n var isAnimating = timeSinceLastMomentumScrollEnd < IS_ANIMATING_TOUCH_START_THRESHOLD_MS || this.lastMomentumScrollEndTime < this.lastMomentumScrollBeginTime;\n return isAnimating;\n };\n this.scrollResponderScrollTo = (x, y, animated) => {\n if (typeof x === 'number') {\n console.warn('`scrollResponderScrollTo(x, y, animated)` is deprecated. Use `scrollResponderScrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref = x || emptyObject;\n x = _ref.x;\n y = _ref.y;\n animated = _ref.animated;\n }\n var node = this.getScrollableNode();\n var left = x || 0;\n var top = y || 0;\n if (node != null) {\n if (typeof node.scroll === 'function') {\n node.scroll({\n top,\n left,\n behavior: !animated ? 'auto' : 'smooth'\n });\n } else {\n node.scrollLeft = left;\n node.scrollTop = top;\n }\n }\n };\n this.scrollResponderZoomTo = (rect, animated) => {\n if (Platform.OS !== 'ios') {\n invariant('zoomToRect is not implemented');\n }\n };\n this.scrollResponderScrollNativeHandleToKeyboard = (nodeHandle, additionalOffset, preventNegativeScrollOffset) => {\n this.additionalScrollOffset = additionalOffset || 0;\n this.preventNegativeScrollOffset = !!preventNegativeScrollOffset;\n UIManager.measureLayout(nodeHandle, this.getInnerViewNode(), this.scrollResponderTextInputFocusError, this.scrollResponderInputMeasureAndScrollToKeyboard);\n };\n this.scrollResponderInputMeasureAndScrollToKeyboard = (left, top, width, height) => {\n var keyboardScreenY = Dimensions.get('window').height;\n if (this.keyboardWillOpenTo) {\n keyboardScreenY = this.keyboardWillOpenTo.endCoordinates.screenY;\n }\n var scrollOffsetY = top - keyboardScreenY + height + this.additionalScrollOffset;\n\n // By default, this can scroll with negative offset, pulling the content\n // down so that the target component's bottom meets the keyboard's top.\n // If requested otherwise, cap the offset at 0 minimum to avoid content\n // shifting down.\n if (this.preventNegativeScrollOffset) {\n scrollOffsetY = Math.max(0, scrollOffsetY);\n }\n this.scrollResponderScrollTo({\n x: 0,\n y: scrollOffsetY,\n animated: true\n });\n this.additionalOffset = 0;\n this.preventNegativeScrollOffset = false;\n };\n this.scrollResponderKeyboardWillShow = e => {\n this.keyboardWillOpenTo = e;\n this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);\n };\n this.scrollResponderKeyboardWillHide = e => {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);\n };\n this.scrollResponderKeyboardDidShow = e => {\n // TODO(7693961): The event for DidShow is not available on iOS yet.\n // Use the one from WillShow and do not assign.\n if (e) {\n this.keyboardWillOpenTo = e;\n }\n this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);\n };\n this.scrollResponderKeyboardDidHide = e => {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);\n };\n this.flashScrollIndicators = () => {\n this.scrollResponderFlashScrollIndicators();\n };\n this.getScrollResponder = () => {\n return this;\n };\n this.getScrollableNode = () => {\n return this._scrollNodeRef;\n };\n this.getInnerViewRef = () => {\n return this._innerViewRef;\n };\n this.getInnerViewNode = () => {\n return this._innerViewRef;\n };\n this.getNativeScrollRef = () => {\n return this._scrollNodeRef;\n };\n this.scrollTo = (y, x, animated) => {\n if (typeof y === 'number') {\n console.warn('`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref2 = y || emptyObject;\n x = _ref2.x;\n y = _ref2.y;\n animated = _ref2.animated;\n }\n this.scrollResponderScrollTo({\n x: x || 0,\n y: y || 0,\n animated: animated !== false\n });\n };\n this.scrollToEnd = options => {\n // Default to true\n var animated = (options && options.animated) !== false;\n var horizontal = this.props.horizontal;\n var scrollResponderNode = this.getScrollableNode();\n var x = horizontal ? scrollResponderNode.scrollWidth : 0;\n var y = horizontal ? 0 : scrollResponderNode.scrollHeight;\n this.scrollResponderScrollTo({\n x,\n y,\n animated\n });\n };\n this._handleContentOnLayout = e => {\n var _e$nativeEvent$layout = e.nativeEvent.layout,\n width = _e$nativeEvent$layout.width,\n height = _e$nativeEvent$layout.height;\n this.props.onContentSizeChange(width, height);\n };\n this._handleScroll = e => {\n if (process.env.NODE_ENV !== 'production') {\n if (this.props.onScroll && this.props.scrollEventThrottle == null) {\n console.log('You specified `onScroll` on a but not ' + '`scrollEventThrottle`. You will only receive one event. ' + 'Using `16` you get all the events but be aware that it may ' + \"cause frame drops, use a bigger number if you don't need as \" + 'much precision.');\n }\n }\n if (this.props.keyboardDismissMode === 'on-drag') {\n dismissKeyboard();\n }\n this.scrollResponderHandleScroll(e);\n };\n this._setInnerViewRef = node => {\n this._innerViewRef = node;\n };\n this._setScrollNodeRef = node => {\n this._scrollNodeRef = node;\n // ScrollView needs to add more methods to the hostNode in addition to those\n // added by `usePlatformMethods`. This is temporarily until an API like\n // `ScrollView.scrollTo(hostNode, { x, y })` is added to React Native.\n if (node != null) {\n node.getScrollResponder = this.getScrollResponder;\n node.getInnerViewNode = this.getInnerViewNode;\n node.getInnerViewRef = this.getInnerViewRef;\n node.getNativeScrollRef = this.getNativeScrollRef;\n node.getScrollableNode = this.getScrollableNode;\n node.scrollTo = this.scrollTo;\n node.scrollToEnd = this.scrollToEnd;\n node.flashScrollIndicators = this.flashScrollIndicators;\n node.scrollResponderZoomTo = this.scrollResponderZoomTo;\n node.scrollResponderScrollNativeHandleToKeyboard = this.scrollResponderScrollNativeHandleToKeyboard;\n }\n var ref = mergeRefs(this.props.forwardedRef);\n ref(node);\n };\n }\n /**\n * Merely touch starting is not sufficient for a scroll view to become the\n * responder. Being the \"responder\" means that the very next touch move/end\n * event will result in an action/movement.\n *\n * Invoke this from an `onStartShouldSetResponder` event.\n *\n * `onStartShouldSetResponder` is used when the next move/end will trigger\n * some UI movement/action, but when you want to yield priority to views\n * nested inside of the view.\n *\n * There may be some cases where scroll views actually should return `true`\n * from `onStartShouldSetResponder`: Any time we are detecting a standard tap\n * that gives priority to nested views.\n *\n * - If a single tap on the scroll view triggers an action such as\n * recentering a map style view yet wants to give priority to interaction\n * views inside (such as dropped pins or labels), then we would return true\n * from this method when there is a single touch.\n *\n * - Similar to the previous case, if a two finger \"tap\" should trigger a\n * zoom, we would check the `touches` count, and if `>= 2`, we would return\n * true.\n *\n */\n scrollResponderHandleStartShouldSetResponder() {\n return false;\n }\n\n /**\n * There are times when the scroll view wants to become the responder\n * (meaning respond to the next immediate `touchStart/touchEnd`), in a way\n * that *doesn't* give priority to nested views (hence the capture phase):\n *\n * - Currently animating.\n * - Tapping anywhere that is not the focused input, while the keyboard is\n * up (which should dismiss the keyboard).\n *\n * Invoke this from an `onStartShouldSetResponderCapture` event.\n */\n\n /**\n * Invoke this from an `onResponderReject` event.\n *\n * Some other element is not yielding its role as responder. Normally, we'd\n * just disable the `UIScrollView`, but a touch has already began on it, the\n * `UIScrollView` will not accept being disabled after that. The easiest\n * solution for now is to accept the limitation of disallowing this\n * altogether. To improve this, find a way to disable the `UIScrollView` after\n * a touch has already started.\n */\n scrollResponderHandleResponderReject() {\n warning(false, \"ScrollView doesn't take rejection well - scrolls anyway\");\n }\n\n /**\n * We will allow the scroll view to give up its lock iff it acquired the lock\n * during an animation. This is a very useful default that happens to satisfy\n * many common user experiences.\n *\n * - Stop a scroll on the left edge, then turn that into an outer view's\n * backswipe.\n * - Stop a scroll mid-bounce at the top, continue pulling to have the outer\n * view dismiss.\n * - However, without catching the scroll view mid-bounce (while it is\n * motionless), if you drag far enough for the scroll view to become\n * responder (and therefore drag the scroll view a bit), any backswipe\n * navigation of a swipe gesture higher in the view hierarchy, should be\n * rejected.\n */\n\n /**\n * Displays the scroll indicators momentarily.\n */\n scrollResponderFlashScrollIndicators() {}\n\n /**\n * This method should be used as the callback to onFocus in a TextInputs'\n * parent view. Note that any module using this mixin needs to return\n * the parent view's ref in getScrollViewRef() in order to use this method.\n * @param {any} nodeHandle The TextInput node handle\n * @param {number} additionalOffset The scroll view's top \"contentInset\".\n * Default is 0.\n * @param {bool} preventNegativeScrolling Whether to allow pulling the content\n * down to make it meet the keyboard's top. Default is false.\n */\n\n scrollResponderTextInputFocusError(e) {\n console.error('Error measuring text field: ', e);\n }\n\n /**\n * Warning, this may be called several times for a single keyboard opening.\n * It's best to store the information in this method and then take any action\n * at a later point (either in `keyboardDidShow` or other).\n *\n * Here's the order that events occur in:\n * - focus\n * - willShow {startCoordinates, endCoordinates} several times\n * - didShow several times\n * - blur\n * - willHide {startCoordinates, endCoordinates} several times\n * - didHide several times\n *\n * The `ScrollResponder` providesModule callbacks for each of these events.\n * Even though any user could have easily listened to keyboard events\n * themselves, using these `props` callbacks ensures that ordering of events\n * is consistent - and not dependent on the order that the keyboard events are\n * subscribed to. This matters when telling the scroll view to scroll to where\n * the keyboard is headed - the scroll responder better have been notified of\n * the keyboard destination before being instructed to scroll to where the\n * keyboard will be. Stick to the `ScrollResponder` callbacks, and everything\n * will work.\n *\n * WARNING: These callbacks will fire even if a keyboard is displayed in a\n * different navigation pane. Filter out the events to determine if they are\n * relevant to you. (For example, only if you receive these callbacks after\n * you had explicitly focused a node etc).\n */\n\n render() {\n var _this$props = this.props,\n contentContainerStyle = _this$props.contentContainerStyle,\n horizontal = _this$props.horizontal,\n onContentSizeChange = _this$props.onContentSizeChange,\n refreshControl = _this$props.refreshControl,\n stickyHeaderIndices = _this$props.stickyHeaderIndices,\n pagingEnabled = _this$props.pagingEnabled,\n forwardedRef = _this$props.forwardedRef,\n keyboardDismissMode = _this$props.keyboardDismissMode,\n onScroll = _this$props.onScroll,\n centerContent = _this$props.centerContent,\n other = _objectWithoutPropertiesLoose(_this$props, _excluded);\n if (process.env.NODE_ENV !== 'production' && this.props.style) {\n var style = StyleSheet.flatten(this.props.style);\n var childLayoutProps = ['alignItems', 'justifyContent'].filter(prop => style && style[prop] !== undefined);\n invariant(childLayoutProps.length === 0, \"ScrollView child layout (\" + JSON.stringify(childLayoutProps) + \") \" + 'must be applied through the contentContainerStyle prop.');\n }\n var contentSizeChangeProps = {};\n if (onContentSizeChange) {\n contentSizeChangeProps = {\n onLayout: this._handleContentOnLayout\n };\n }\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var children = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(this.props.children, (child, i) => {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n if (child != null && (isSticky || pagingEnabled)) {\n return /*#__PURE__*/React.createElement(View, {\n style: [isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild]\n }, child);\n } else {\n return child;\n }\n }) : this.props.children;\n var contentContainer = /*#__PURE__*/React.createElement(View, _extends({}, contentSizeChangeProps, {\n children: children,\n collapsable: false,\n ref: this._setInnerViewRef,\n style: [horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle]\n }));\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n var props = _objectSpread(_objectSpread({}, other), {}, {\n style: [baseStyle, pagingEnabled && pagingEnabledStyle, this.props.style],\n onTouchStart: this.scrollResponderHandleTouchStart,\n onTouchMove: this.scrollResponderHandleTouchMove,\n onTouchEnd: this.scrollResponderHandleTouchEnd,\n onScrollBeginDrag: this.scrollResponderHandleScrollBeginDrag,\n onScrollEndDrag: this.scrollResponderHandleScrollEndDrag,\n onMomentumScrollBegin: this.scrollResponderHandleMomentumScrollBegin,\n onMomentumScrollEnd: this.scrollResponderHandleMomentumScrollEnd,\n onStartShouldSetResponder: this.scrollResponderHandleStartShouldSetResponder,\n onStartShouldSetResponderCapture: this.scrollResponderHandleStartShouldSetResponderCapture,\n onScrollShouldSetResponder: this.scrollResponderHandleScrollShouldSetResponder,\n onScroll: this._handleScroll,\n onResponderGrant: this.scrollResponderHandleResponderGrant,\n onResponderTerminationRequest: this.scrollResponderHandleTerminationRequest,\n onResponderTerminate: this.scrollResponderHandleTerminate,\n onResponderRelease: this.scrollResponderHandleResponderRelease,\n onResponderReject: this.scrollResponderHandleResponderReject\n });\n var ScrollViewClass = ScrollViewBase;\n invariant(ScrollViewClass !== undefined, 'ScrollViewClass must not be undefined');\n var scrollView = /*#__PURE__*/React.createElement(ScrollViewClass, _extends({}, props, {\n ref: this._setScrollNodeRef\n }), contentContainer);\n if (refreshControl) {\n return /*#__PURE__*/React.cloneElement(refreshControl, {\n style: props.style\n }, scrollView);\n }\n return scrollView;\n }\n}\nvar commonStyle = {\n flexGrow: 1,\n flexShrink: 1,\n // Enable hardware compositing in modern browsers.\n // Creates a new layer with its own backing surface that can significantly\n // improve scroll performance.\n transform: 'translateZ(0)',\n // iOS native scrolling\n WebkitOverflowScrolling: 'touch'\n};\nvar styles = StyleSheet.create({\n baseVertical: _objectSpread(_objectSpread({}, commonStyle), {}, {\n flexDirection: 'column',\n overflowX: 'hidden',\n overflowY: 'auto'\n }),\n baseHorizontal: _objectSpread(_objectSpread({}, commonStyle), {}, {\n flexDirection: 'row',\n overflowX: 'auto',\n overflowY: 'hidden'\n }),\n contentContainerHorizontal: {\n flexDirection: 'row'\n },\n contentContainerCenterContent: {\n justifyContent: 'center',\n flexGrow: 1\n },\n stickyHeader: {\n position: 'sticky',\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: 'x mandatory'\n },\n pagingEnabledVertical: {\n scrollSnapType: 'y mandatory'\n },\n pagingEnabledChild: {\n scrollSnapAlign: 'start'\n }\n});\nvar ForwardedScrollView = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n return /*#__PURE__*/React.createElement(ScrollView, _extends({}, props, {\n forwardedRef: forwardedRef\n }));\n});\nForwardedScrollView.displayName = 'ScrollView';\nexport default ForwardedScrollView;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport invariant from 'fbjs/lib/invariant';\nclass TaskQueue {\n constructor(_ref) {\n var onMoreTasks = _ref.onMoreTasks;\n this._onMoreTasks = onMoreTasks;\n this._queueStack = [{\n tasks: [],\n popable: true\n }];\n }\n enqueue(task) {\n this._getCurrentQueue().push(task);\n }\n enqueueTasks(tasks) {\n tasks.forEach(task => this.enqueue(task));\n }\n cancelTasks(tasksToCancel) {\n this._queueStack = this._queueStack.map(queue => _objectSpread(_objectSpread({}, queue), {}, {\n tasks: queue.tasks.filter(task => tasksToCancel.indexOf(task) === -1)\n })).filter((queue, idx) => queue.tasks.length > 0 || idx === 0);\n }\n hasTasksToProcess() {\n return this._getCurrentQueue().length > 0;\n }\n\n /**\n * Executes the next task in the queue.\n */\n processNext() {\n var queue = this._getCurrentQueue();\n if (queue.length) {\n var task = queue.shift();\n try {\n if (typeof task === 'object' && task.gen) {\n this._genPromise(task);\n } else if (typeof task === 'object' && task.run) {\n task.run();\n } else {\n invariant(typeof task === 'function', 'Expected Function, SimpleTask, or PromiseTask, but got:\\n' + JSON.stringify(task, null, 2));\n task();\n }\n } catch (e) {\n e.message = 'TaskQueue: Error with task ' + (task.name || '') + ': ' + e.message;\n throw e;\n }\n }\n }\n _getCurrentQueue() {\n var stackIdx = this._queueStack.length - 1;\n var queue = this._queueStack[stackIdx];\n if (queue.popable && queue.tasks.length === 0 && stackIdx > 0) {\n this._queueStack.pop();\n return this._getCurrentQueue();\n } else {\n return queue.tasks;\n }\n }\n _genPromise(task) {\n var length = this._queueStack.push({\n tasks: [],\n popable: false\n });\n var stackIdx = length - 1;\n var stackItem = this._queueStack[stackIdx];\n task.gen().then(() => {\n stackItem.popable = true;\n this.hasTasksToProcess() && this._onMoreTasks();\n }).catch(ex => {\n setTimeout(() => {\n ex.message = \"TaskQueue: Error resolving Promise in task \" + task.name + \": \" + ex.message;\n throw ex;\n }, 0);\n });\n }\n}\nexport default TaskQueue;","/**\n * Copyright (c) Nicolas Gallagher.\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 */\nimport canUseDOM from '../canUseDom';\nvar _requestIdleCallback = function _requestIdleCallback(cb, options) {\n return setTimeout(() => {\n var start = Date.now();\n cb({\n didTimeout: false,\n timeRemaining() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\nvar _cancelIdleCallback = function _cancelIdleCallback(id) {\n clearTimeout(id);\n};\nvar isSupported = canUseDOM && typeof window.requestIdleCallback !== 'undefined';\nvar requestIdleCallback = isSupported ? window.requestIdleCallback : _requestIdleCallback;\nvar cancelIdleCallback = isSupported ? window.cancelIdleCallback : _cancelIdleCallback;\nexport default requestIdleCallback;\nexport { cancelIdleCallback };","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport invariant from 'fbjs/lib/invariant';\nimport TaskQueue from './TaskQueue';\nimport EventEmitter from '../../vendor/react-native/vendor/emitter/EventEmitter';\nimport requestIdleCallback from '../../modules/requestIdleCallback';\nvar _emitter = new EventEmitter();\nvar InteractionManager = {\n Events: {\n interactionStart: 'interactionStart',\n interactionComplete: 'interactionComplete'\n },\n /**\n * Schedule a function to run after all interactions have completed.\n */\n runAfterInteractions(task) {\n var tasks = [];\n var promise = new Promise(resolve => {\n _scheduleUpdate();\n if (task) {\n tasks.push(task);\n }\n tasks.push({\n run: resolve,\n name: 'resolve ' + (task && task.name || '?')\n });\n _taskQueue.enqueueTasks(tasks);\n });\n return {\n then: promise.then.bind(promise),\n done: promise.then.bind(promise),\n cancel: () => {\n _taskQueue.cancelTasks(tasks);\n }\n };\n },\n /**\n * Notify manager that an interaction has started.\n */\n createInteractionHandle() {\n _scheduleUpdate();\n var handle = ++_inc;\n _addInteractionSet.add(handle);\n return handle;\n },\n /**\n * Notify manager that an interaction has completed.\n */\n clearInteractionHandle(handle) {\n invariant(!!handle, 'Must provide a handle to clear.');\n _scheduleUpdate();\n _addInteractionSet.delete(handle);\n _deleteInteractionSet.add(handle);\n },\n addListener: _emitter.addListener.bind(_emitter),\n /**\n *\n * @param deadline\n */\n setDeadline(deadline) {\n _deadline = deadline;\n }\n};\nvar _interactionSet = new Set();\nvar _addInteractionSet = new Set();\nvar _deleteInteractionSet = new Set();\nvar _taskQueue = new TaskQueue({\n onMoreTasks: _scheduleUpdate\n});\nvar _nextUpdateHandle = 0;\nvar _inc = 0;\nvar _deadline = -1;\n\n/**\n * Schedule an asynchronous update to the interaction state.\n */\nfunction _scheduleUpdate() {\n if (!_nextUpdateHandle) {\n if (_deadline > 0) {\n _nextUpdateHandle = setTimeout(_processUpdate);\n } else {\n _nextUpdateHandle = requestIdleCallback(_processUpdate);\n }\n }\n}\n\n/**\n * Notify listeners, process queue, etc\n */\nfunction _processUpdate() {\n _nextUpdateHandle = 0;\n var interactionCount = _interactionSet.size;\n _addInteractionSet.forEach(handle => _interactionSet.add(handle));\n _deleteInteractionSet.forEach(handle => _interactionSet.delete(handle));\n var nextInteractionCount = _interactionSet.size;\n if (interactionCount !== 0 && nextInteractionCount === 0) {\n _emitter.emit(InteractionManager.Events.interactionComplete);\n } else if (interactionCount === 0 && nextInteractionCount !== 0) {\n _emitter.emit(InteractionManager.Events.interactionStart);\n }\n if (nextInteractionCount === 0) {\n // It seems that we can't know the running time of the current event loop,\n // we can only calculate the running time of the current task queue.\n var begin = Date.now();\n while (_taskQueue.hasTasksToProcess()) {\n _taskQueue.processNext();\n if (_deadline > 0 && Date.now() - begin >= _deadline) {\n _scheduleUpdate();\n break;\n }\n }\n }\n _addInteractionSet.clear();\n _deleteInteractionSet.clear();\n}\nexport default InteractionManager;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n\n/**\n * EventEmitter manages listeners and publishes events to them.\n *\n * EventEmitter accepts a single type parameter that defines the valid events\n * and associated listener argument(s).\n *\n * @example\n *\n * const emitter = new EventEmitter<{\n * success: [number, string],\n * error: [Error],\n * }>();\n *\n * emitter.on('success', (statusCode, responseText) => {...});\n * emitter.emit('success', 200, '...');\n *\n * emitter.on('error', error => {...});\n * emitter.emit('error', new Error('Resource not found'));\n *\n */\nexport default class EventEmitter {\n constructor() {\n this._registry = {};\n }\n /**\n * Registers a listener that is called when the supplied event is emitted.\n * Returns a subscription that has a `remove` method to undo registration.\n */\n addListener(eventType, listener, context) {\n var registrations = allocate(this._registry, eventType);\n var registration = {\n context,\n listener,\n remove() {\n registrations.delete(registration);\n }\n };\n registrations.add(registration);\n return registration;\n }\n\n /**\n * Emits the supplied event. Additional arguments supplied to `emit` will be\n * passed through to each of the registered listeners.\n *\n * If a listener modifies the listeners registered for the same event, those\n * changes will not be reflected in the current invocation of `emit`.\n */\n emit(eventType) {\n var registrations = this._registry[eventType];\n if (registrations != null) {\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 for (var _i = 0, _arr = [...registrations]; _i < _arr.length; _i++) {\n var registration = _arr[_i];\n registration.listener.apply(registration.context, args);\n }\n }\n }\n\n /**\n * Removes all registered listeners.\n */\n removeAllListeners(eventType) {\n if (eventType == null) {\n this._registry = {};\n } else {\n delete this._registry[eventType];\n }\n }\n\n /**\n * Returns the number of registered listeners for the supplied event.\n */\n listenerCount(eventType) {\n var registrations = this._registry[eventType];\n return registrations == null ? 0 : registrations.size;\n }\n}\nfunction allocate(registry, eventType) {\n var registrations = registry[eventType];\n if (registrations == null) {\n registrations = new Set();\n registry[eventType] = registrations;\n }\n return registrations;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * \n */\n\n'use strict';\n\nimport InteractionManager from '../../../exports/InteractionManager';\n\n/**\n * A simple class for batching up invocations of a low-pri callback. A timeout is set to run the\n * callback once after a delay, no matter how many times it's scheduled. Once the delay is reached,\n * InteractionManager.runAfterInteractions is used to invoke the callback after any hi-pri\n * interactions are done running.\n *\n * Make sure to cleanup with dispose(). Example:\n *\n * class Widget extends React.Component {\n * _batchedSave: new Batchinator(() => this._saveState, 1000);\n * _saveSate() {\n * // save this.state to disk\n * }\n * componentDidUpdate() {\n * this._batchedSave.schedule();\n * }\n * componentWillUnmount() {\n * this._batchedSave.dispose();\n * }\n * ...\n * }\n */\nclass Batchinator {\n constructor(callback, delayMS) {\n this._delay = delayMS;\n this._callback = callback;\n }\n /*\n * Cleanup any pending tasks.\n *\n * By default, if there is a pending task the callback is run immediately. Set the option abort to\n * true to not call the callback if it was pending.\n */\n dispose(options) {\n if (options === void 0) {\n options = {\n abort: false\n };\n }\n if (this._taskHandle) {\n this._taskHandle.cancel();\n if (!options.abort) {\n this._callback();\n }\n this._taskHandle = null;\n }\n }\n schedule() {\n if (this._taskHandle) {\n return;\n }\n var timeoutHandle = setTimeout(() => {\n this._taskHandle = InteractionManager.runAfterInteractions(() => {\n // Note that we clear the handle before invoking the callback so that if the callback calls\n // schedule again, it will actually schedule another task.\n this._taskHandle = null;\n this._callback();\n });\n }, this._delay);\n this._taskHandle = {\n cancel: () => clearTimeout(timeoutHandle)\n };\n }\n}\nexport default Batchinator;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * \n */\n\n'use strict';\n\n/**\n * Intentional info-level logging for clear separation from ad-hoc console debug logging.\n */\nfunction infoLog() {\n return console.log(...arguments);\n}\nexport default infoLog;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n\nimport invariant from 'fbjs/lib/invariant';\nexport class CellRenderMask {\n constructor(numCells) {\n invariant(numCells >= 0, 'CellRenderMask must contain a non-negative number os cells');\n this._numCells = numCells;\n if (numCells === 0) {\n this._regions = [];\n } else {\n this._regions = [{\n first: 0,\n last: numCells - 1,\n isSpacer: true\n }];\n }\n }\n enumerateRegions() {\n return this._regions;\n }\n addCells(cells) {\n invariant(cells.first >= 0 && cells.first < this._numCells && cells.last >= -1 && cells.last < this._numCells && cells.last >= cells.first - 1, 'CellRenderMask.addCells called with invalid cell range');\n\n // VirtualizedList uses inclusive ranges, where zero-count states are\n // possible. E.g. [0, -1] for no cells, starting at 0.\n if (cells.last < cells.first) {\n return;\n }\n var _this$_findRegion = this._findRegion(cells.first),\n firstIntersect = _this$_findRegion[0],\n firstIntersectIdx = _this$_findRegion[1];\n var _this$_findRegion2 = this._findRegion(cells.last),\n lastIntersect = _this$_findRegion2[0],\n lastIntersectIdx = _this$_findRegion2[1];\n\n // Fast-path if the cells to add are already all present in the mask. We\n // will otherwise need to do some mutation.\n if (firstIntersectIdx === lastIntersectIdx && !firstIntersect.isSpacer) {\n return;\n }\n\n // We need to replace the existing covered regions with 1-3 new regions\n // depending whether we need to split spacers out of overlapping regions.\n var newLeadRegion = [];\n var newTailRegion = [];\n var newMainRegion = _objectSpread(_objectSpread({}, cells), {}, {\n isSpacer: false\n });\n if (firstIntersect.first < newMainRegion.first) {\n if (firstIntersect.isSpacer) {\n newLeadRegion.push({\n first: firstIntersect.first,\n last: newMainRegion.first - 1,\n isSpacer: true\n });\n } else {\n newMainRegion.first = firstIntersect.first;\n }\n }\n if (lastIntersect.last > newMainRegion.last) {\n if (lastIntersect.isSpacer) {\n newTailRegion.push({\n first: newMainRegion.last + 1,\n last: lastIntersect.last,\n isSpacer: true\n });\n } else {\n newMainRegion.last = lastIntersect.last;\n }\n }\n var replacementRegions = [...newLeadRegion, newMainRegion, ...newTailRegion];\n var numRegionsToDelete = lastIntersectIdx - firstIntersectIdx + 1;\n this._regions.splice(firstIntersectIdx, numRegionsToDelete, ...replacementRegions);\n }\n numCells() {\n return this._numCells;\n }\n equals(other) {\n return this._numCells === other._numCells && this._regions.length === other._regions.length && this._regions.every((region, i) => region.first === other._regions[i].first && region.last === other._regions[i].last && region.isSpacer === other._regions[i].isSpacer);\n }\n _findRegion(cellIdx) {\n var firstIdx = 0;\n var lastIdx = this._regions.length - 1;\n while (firstIdx <= lastIdx) {\n var middleIdx = Math.floor((firstIdx + lastIdx) / 2);\n var middleRegion = this._regions[middleIdx];\n if (cellIdx >= middleRegion.first && cellIdx <= middleRegion.last) {\n return [middleRegion, middleIdx];\n } else if (cellIdx < middleRegion.first) {\n lastIdx = middleIdx - 1;\n } else if (cellIdx > middleRegion.last) {\n firstIdx = middleIdx + 1;\n }\n }\n invariant(false, \"A region was not found containing cellIdx \" + cellIdx);\n }\n}","import _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n\nimport invariant from 'fbjs/lib/invariant';\nexport default class ChildListCollection {\n constructor() {\n this._cellKeyToChildren = new Map();\n this._childrenToCellKey = new Map();\n }\n add(list, cellKey) {\n var _this$_cellKeyToChild;\n invariant(!this._childrenToCellKey.has(list), 'Trying to add already present child list');\n var cellLists = (_this$_cellKeyToChild = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild !== void 0 ? _this$_cellKeyToChild : new Set();\n cellLists.add(list);\n this._cellKeyToChildren.set(cellKey, cellLists);\n this._childrenToCellKey.set(list, cellKey);\n }\n remove(list) {\n var cellKey = this._childrenToCellKey.get(list);\n invariant(cellKey != null, 'Trying to remove non-present child list');\n this._childrenToCellKey.delete(list);\n var cellLists = this._cellKeyToChildren.get(cellKey);\n invariant(cellLists, '_cellKeyToChildren should contain cellKey');\n cellLists.delete(list);\n if (cellLists.size === 0) {\n this._cellKeyToChildren.delete(cellKey);\n }\n }\n forEach(fn) {\n for (var _iterator = _createForOfIteratorHelperLoose(this._cellKeyToChildren.values()), _step; !(_step = _iterator()).done;) {\n var listSet = _step.value;\n for (var _iterator2 = _createForOfIteratorHelperLoose(listSet), _step2; !(_step2 = _iterator2()).done;) {\n var list = _step2.value;\n fn(list);\n }\n }\n }\n forEachInCell(cellKey, fn) {\n var _this$_cellKeyToChild2;\n var listSet = (_this$_cellKeyToChild2 = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild2 !== void 0 ? _this$_cellKeyToChild2 : [];\n for (var _iterator3 = _createForOfIteratorHelperLoose(listSet), _step3; !(_step3 = _iterator3()).done;) {\n var list = _step3.value;\n fn(list);\n }\n }\n anyInCell(cellKey, fn) {\n var _this$_cellKeyToChild3;\n var listSet = (_this$_cellKeyToChild3 = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild3 !== void 0 ? _this$_cellKeyToChild3 : [];\n for (var _iterator4 = _createForOfIteratorHelperLoose(listSet), _step4; !(_step4 = _iterator4()).done;) {\n var list = _step4.value;\n if (fn(list)) {\n return true;\n }\n }\n return false;\n }\n size() {\n return this._childrenToCellKey.size;\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nclass Info {\n constructor() {\n this.any_blank_count = 0;\n this.any_blank_ms = 0;\n this.any_blank_speed_sum = 0;\n this.mostly_blank_count = 0;\n this.mostly_blank_ms = 0;\n this.pixels_blank = 0;\n this.pixels_sampled = 0;\n this.pixels_scrolled = 0;\n this.total_time_spent = 0;\n this.sample_count = 0;\n }\n}\nvar DEBUG = false;\nvar _listeners = [];\nvar _minSampleCount = 10;\nvar _sampleRate = DEBUG ? 1 : null;\n\n/**\n * A helper class for detecting when the maximem fill rate of `VirtualizedList` is exceeded.\n * By default the sampling rate is set to zero and this will do nothing. If you want to collect\n * samples (e.g. to log them), make sure to call `FillRateHelper.setSampleRate(0.0-1.0)`.\n *\n * Listeners and sample rate are global for all `VirtualizedList`s - typical usage will combine with\n * `SceneTracker.getActiveScene` to determine the context of the events.\n */\nclass FillRateHelper {\n static addListener(callback) {\n if (_sampleRate === null) {\n console.warn('Call `FillRateHelper.setSampleRate` before `addListener`.');\n }\n _listeners.push(callback);\n return {\n remove: () => {\n _listeners = _listeners.filter(listener => callback !== listener);\n }\n };\n }\n static setSampleRate(sampleRate) {\n _sampleRate = sampleRate;\n }\n static setMinSampleCount(minSampleCount) {\n _minSampleCount = minSampleCount;\n }\n constructor(getFrameMetrics) {\n this._anyBlankStartTime = null;\n this._enabled = false;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n this._getFrameMetrics = getFrameMetrics;\n this._enabled = (_sampleRate || 0) > Math.random();\n this._resetData();\n }\n activate() {\n if (this._enabled && this._samplesStartTime == null) {\n DEBUG && console.debug('FillRateHelper: activate');\n this._samplesStartTime = global.performance.now();\n }\n }\n deactivateAndFlush() {\n if (!this._enabled) {\n return;\n }\n var start = this._samplesStartTime; // const for flow\n if (start == null) {\n DEBUG && console.debug('FillRateHelper: bail on deactivate with no start time');\n return;\n }\n if (this._info.sample_count < _minSampleCount) {\n // Don't bother with under-sampled events.\n this._resetData();\n return;\n }\n var total_time_spent = global.performance.now() - start;\n var info = _objectSpread(_objectSpread({}, this._info), {}, {\n total_time_spent\n });\n if (DEBUG) {\n var derived = {\n avg_blankness: this._info.pixels_blank / this._info.pixels_sampled,\n avg_speed: this._info.pixels_scrolled / (total_time_spent / 1000),\n avg_speed_when_any_blank: this._info.any_blank_speed_sum / this._info.any_blank_count,\n any_blank_per_min: this._info.any_blank_count / (total_time_spent / 1000 / 60),\n any_blank_time_frac: this._info.any_blank_ms / total_time_spent,\n mostly_blank_per_min: this._info.mostly_blank_count / (total_time_spent / 1000 / 60),\n mostly_blank_time_frac: this._info.mostly_blank_ms / total_time_spent\n };\n for (var key in derived) {\n // $FlowFixMe[prop-missing]\n derived[key] = Math.round(1000 * derived[key]) / 1000;\n }\n console.debug('FillRateHelper deactivateAndFlush: ', {\n derived,\n info\n });\n }\n _listeners.forEach(listener => listener(info));\n this._resetData();\n }\n computeBlankness(props, cellsAroundViewport, scrollMetrics) {\n if (!this._enabled || props.getItemCount(props.data) === 0 || cellsAroundViewport.last < cellsAroundViewport.first || this._samplesStartTime == null) {\n return 0;\n }\n var dOffset = scrollMetrics.dOffset,\n offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength;\n\n // Denominator metrics that we track for all events - most of the time there is no blankness and\n // we want to capture that.\n this._info.sample_count++;\n this._info.pixels_sampled += Math.round(visibleLength);\n this._info.pixels_scrolled += Math.round(Math.abs(dOffset));\n var scrollSpeed = Math.round(Math.abs(velocity) * 1000); // px / sec\n\n // Whether blank now or not, record the elapsed time blank if we were blank last time.\n var now = global.performance.now();\n if (this._anyBlankStartTime != null) {\n this._info.any_blank_ms += now - this._anyBlankStartTime;\n }\n this._anyBlankStartTime = null;\n if (this._mostlyBlankStartTime != null) {\n this._info.mostly_blank_ms += now - this._mostlyBlankStartTime;\n }\n this._mostlyBlankStartTime = null;\n var blankTop = 0;\n var first = cellsAroundViewport.first;\n var firstFrame = this._getFrameMetrics(first, props);\n while (first <= cellsAroundViewport.last && (!firstFrame || !firstFrame.inLayout)) {\n firstFrame = this._getFrameMetrics(first, props);\n first++;\n }\n // Only count blankTop if we aren't rendering the first item, otherwise we will count the header\n // as blank.\n if (firstFrame && first > 0) {\n blankTop = Math.min(visibleLength, Math.max(0, firstFrame.offset - offset));\n }\n var blankBottom = 0;\n var last = cellsAroundViewport.last;\n var lastFrame = this._getFrameMetrics(last, props);\n while (last >= cellsAroundViewport.first && (!lastFrame || !lastFrame.inLayout)) {\n lastFrame = this._getFrameMetrics(last, props);\n last--;\n }\n // Only count blankBottom if we aren't rendering the last item, otherwise we will count the\n // footer as blank.\n if (lastFrame && last < props.getItemCount(props.data) - 1) {\n var bottomEdge = lastFrame.offset + lastFrame.length;\n blankBottom = Math.min(visibleLength, Math.max(0, offset + visibleLength - bottomEdge));\n }\n var pixels_blank = Math.round(blankTop + blankBottom);\n var blankness = pixels_blank / visibleLength;\n if (blankness > 0) {\n this._anyBlankStartTime = now;\n this._info.any_blank_speed_sum += scrollSpeed;\n this._info.any_blank_count++;\n this._info.pixels_blank += pixels_blank;\n if (blankness > 0.5) {\n this._mostlyBlankStartTime = now;\n this._info.mostly_blank_count++;\n }\n } else if (scrollSpeed < 0.01 || Math.abs(dOffset) < 1) {\n this.deactivateAndFlush();\n }\n return blankness;\n }\n enabled() {\n return this._enabled;\n }\n _resetData() {\n this._anyBlankStartTime = null;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n }\n}\nexport default FillRateHelper;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n\nimport invariant from 'fbjs/lib/invariant';\nimport * as React from 'react';\n\n/**\n * `setState` is called asynchronously, and should not rely on the value of\n * `this.props` or `this.state`:\n * https://reactjs.org/docs/state-and-lifecycle.html#state-updates-may-be-asynchronous\n *\n * SafePureComponent adds runtime enforcement, to catch cases where these\n * variables are read in a state updater function, instead of the ones passed\n * in.\n */\nexport default class StateSafePureComponent extends React.PureComponent {\n constructor(props) {\n super(props);\n this._inAsyncStateUpdate = false;\n this._installSetStateHooks();\n }\n setState(partialState, callback) {\n if (typeof partialState === 'function') {\n super.setState((state, props) => {\n this._inAsyncStateUpdate = true;\n var ret;\n try {\n ret = partialState(state, props);\n } catch (err) {\n throw err;\n } finally {\n this._inAsyncStateUpdate = false;\n }\n return ret;\n }, callback);\n } else {\n super.setState(partialState, callback);\n }\n }\n _installSetStateHooks() {\n var that = this;\n var props = this.props,\n state = this.state;\n Object.defineProperty(this, 'props', {\n get() {\n invariant(!that._inAsyncStateUpdate, '\"this.props\" should not be accessed during state updates');\n return props;\n },\n set(newProps) {\n props = newProps;\n }\n });\n Object.defineProperty(this, 'state', {\n get() {\n invariant(!that._inAsyncStateUpdate, '\"this.state\" should not be acceessed during state updates');\n return state;\n },\n set(newState) {\n state = newState;\n }\n });\n }\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n\n'use strict';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport invariant from 'fbjs/lib/invariant';\n/**\n * A Utility class for calculating viewable items based on current metrics like scroll position and\n * layout.\n *\n * An item is said to be in a \"viewable\" state when any of the following\n * is true for longer than `minimumViewTime` milliseconds (after an interaction if `waitForInteraction`\n * is true):\n *\n * - Occupying >= `viewAreaCoveragePercentThreshold` of the view area XOR fraction of the item\n * visible in the view area >= `itemVisiblePercentThreshold`.\n * - Entirely visible on screen\n */\nclass ViewabilityHelper {\n constructor(config) {\n if (config === void 0) {\n config = {\n viewAreaCoveragePercentThreshold: 0\n };\n }\n this._hasInteracted = false;\n this._timers = new Set();\n this._viewableIndices = [];\n this._viewableItems = new Map();\n this._config = config;\n }\n\n /**\n * Cleanup, e.g. on unmount. Clears any pending timers.\n */\n dispose() {\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To see\n * the error delete this comment and run Flow. */\n this._timers.forEach(clearTimeout);\n }\n\n /**\n * Determines which items are viewable based on the current metrics and config.\n */\n computeViewableItems(props, scrollOffset, viewportHeight, getFrameMetrics,\n // Optional optimization to reduce the scan size\n renderRange) {\n var itemCount = props.getItemCount(props.data);\n var _this$_config = this._config,\n itemVisiblePercentThreshold = _this$_config.itemVisiblePercentThreshold,\n viewAreaCoveragePercentThreshold = _this$_config.viewAreaCoveragePercentThreshold;\n var viewAreaMode = viewAreaCoveragePercentThreshold != null;\n var viewablePercentThreshold = viewAreaMode ? viewAreaCoveragePercentThreshold : itemVisiblePercentThreshold;\n invariant(viewablePercentThreshold != null && itemVisiblePercentThreshold != null !== (viewAreaCoveragePercentThreshold != null), 'Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold');\n var viewableIndices = [];\n if (itemCount === 0) {\n return viewableIndices;\n }\n var firstVisible = -1;\n var _ref = renderRange || {\n first: 0,\n last: itemCount - 1\n },\n first = _ref.first,\n last = _ref.last;\n if (last >= itemCount) {\n console.warn('Invalid render range computing viewability ' + JSON.stringify({\n renderRange,\n itemCount\n }));\n return [];\n }\n for (var idx = first; idx <= last; idx++) {\n var metrics = getFrameMetrics(idx, props);\n if (!metrics) {\n continue;\n }\n var top = metrics.offset - scrollOffset;\n var bottom = top + metrics.length;\n if (top < viewportHeight && bottom > 0) {\n firstVisible = idx;\n if (_isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, metrics.length)) {\n viewableIndices.push(idx);\n }\n } else if (firstVisible >= 0) {\n break;\n }\n }\n return viewableIndices;\n }\n\n /**\n * Figures out which items are viewable and how that has changed from before and calls\n * `onViewableItemsChanged` as appropriate.\n */\n onUpdate(props, scrollOffset, viewportHeight, getFrameMetrics, createViewToken, onViewableItemsChanged,\n // Optional optimization to reduce the scan size\n renderRange) {\n var itemCount = props.getItemCount(props.data);\n if (this._config.waitForInteraction && !this._hasInteracted || itemCount === 0 || !getFrameMetrics(0, props)) {\n return;\n }\n var viewableIndices = [];\n if (itemCount) {\n viewableIndices = this.computeViewableItems(props, scrollOffset, viewportHeight, getFrameMetrics, renderRange);\n }\n if (this._viewableIndices.length === viewableIndices.length && this._viewableIndices.every((v, ii) => v === viewableIndices[ii])) {\n // We might get a lot of scroll events where visibility doesn't change and we don't want to do\n // extra work in those cases.\n return;\n }\n this._viewableIndices = viewableIndices;\n if (this._config.minimumViewTime) {\n var handle = setTimeout(() => {\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To\n * see the error delete this comment and run Flow. */\n this._timers.delete(handle);\n this._onUpdateSync(props, viewableIndices, onViewableItemsChanged, createViewToken);\n }, this._config.minimumViewTime);\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To see\n * the error delete this comment and run Flow. */\n this._timers.add(handle);\n } else {\n this._onUpdateSync(props, viewableIndices, onViewableItemsChanged, createViewToken);\n }\n }\n\n /**\n * clean-up cached _viewableIndices to evaluate changed items on next update\n */\n resetViewableIndices() {\n this._viewableIndices = [];\n }\n\n /**\n * Records that an interaction has happened even if there has been no scroll.\n */\n recordInteraction() {\n this._hasInteracted = true;\n }\n _onUpdateSync(props, viewableIndicesToCheck, onViewableItemsChanged, createViewToken) {\n // Filter out indices that have gone out of view since this call was scheduled.\n viewableIndicesToCheck = viewableIndicesToCheck.filter(ii => this._viewableIndices.includes(ii));\n var prevItems = this._viewableItems;\n var nextItems = new Map(viewableIndicesToCheck.map(ii => {\n var viewable = createViewToken(ii, true, props);\n return [viewable.key, viewable];\n }));\n var changed = [];\n for (var _iterator = _createForOfIteratorHelperLoose(nextItems), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n viewable = _step$value[1];\n if (!prevItems.has(key)) {\n changed.push(viewable);\n }\n }\n for (var _iterator2 = _createForOfIteratorHelperLoose(prevItems), _step2; !(_step2 = _iterator2()).done;) {\n var _step2$value = _step2.value,\n _key = _step2$value[0],\n _viewable = _step2$value[1];\n if (!nextItems.has(_key)) {\n changed.push(_objectSpread(_objectSpread({}, _viewable), {}, {\n isViewable: false\n }));\n }\n }\n if (changed.length > 0) {\n this._viewableItems = nextItems;\n onViewableItemsChanged({\n viewableItems: Array.from(nextItems.values()),\n changed,\n viewabilityConfig: this._config\n });\n }\n }\n}\nfunction _isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, itemLength) {\n if (_isEntirelyVisible(top, bottom, viewportHeight)) {\n return true;\n } else {\n var pixels = _getPixelsVisible(top, bottom, viewportHeight);\n var percent = 100 * (viewAreaMode ? pixels / viewportHeight : pixels / itemLength);\n return percent >= viewablePercentThreshold;\n }\n}\nfunction _getPixelsVisible(top, bottom, viewportHeight) {\n var visibleHeight = Math.min(bottom, viewportHeight) - Math.max(top, 0);\n return Math.max(0, visibleHeight);\n}\nfunction _isEntirelyVisible(top, bottom, viewportHeight) {\n return top >= 0 && bottom <= viewportHeight && bottom > top;\n}\nexport default ViewabilityHelper;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nexport var VirtualizedListContext = /*#__PURE__*/React.createContext(null);\nif (__DEV__) {\n VirtualizedListContext.displayName = 'VirtualizedListContext';\n}\n\n/**\n * Resets the context. Intended for use by portal-like components (e.g. Modal).\n */\nexport function VirtualizedListContextResetter(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: null\n }, children);\n}\n\n/**\n * Sets the context with memoization. Intended to be used by `VirtualizedList`.\n */\nexport function VirtualizedListContextProvider(_ref2) {\n var children = _ref2.children,\n value = _ref2.value;\n // Avoid setting a newly created context object if the values are identical.\n var context = useMemo(() => ({\n cellKey: null,\n getScrollMetrics: value.getScrollMetrics,\n horizontal: value.horizontal,\n getOutermostParentListRef: value.getOutermostParentListRef,\n registerAsNestedChild: value.registerAsNestedChild,\n unregisterAsNestedChild: value.unregisterAsNestedChild\n }), [value.getScrollMetrics, value.horizontal, value.getOutermostParentListRef, value.registerAsNestedChild, value.unregisterAsNestedChild]);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context\n }, children);\n}\n\n/**\n * Sets the `cellKey`. Intended to be used by `VirtualizedList` for each cell.\n */\nexport function VirtualizedListCellContextProvider(_ref3) {\n var cellKey = _ref3.cellKey,\n children = _ref3.children;\n // Avoid setting a newly created context object if the values are identical.\n var currContext = useContext(VirtualizedListContext);\n var context = useMemo(() => currContext == null ? null : _objectSpread(_objectSpread({}, currContext), {}, {\n cellKey\n }), [currContext, cellKey]);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context\n }, children);\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n\nimport View from '../../../exports/View';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport { VirtualizedListCellContextProvider } from './VirtualizedListContext.js';\nimport invariant from 'fbjs/lib/invariant';\nimport * as React from 'react';\nexport default class CellRenderer extends React.Component {\n constructor() {\n super(...arguments);\n this.state = {\n separatorProps: {\n highlighted: false,\n leadingItem: this.props.item\n }\n };\n this._separators = {\n highlight: () => {\n var _this$props = this.props,\n cellKey = _this$props.cellKey,\n prevCellKey = _this$props.prevCellKey;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: true\n });\n },\n unhighlight: () => {\n var _this$props2 = this.props,\n cellKey = _this$props2.cellKey,\n prevCellKey = _this$props2.prevCellKey;\n this.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: false\n });\n },\n updateProps: (select, newProps) => {\n var _this$props3 = this.props,\n cellKey = _this$props3.cellKey,\n prevCellKey = _this$props3.prevCellKey;\n this.props.onUpdateSeparators([select === 'leading' ? prevCellKey : cellKey], newProps);\n }\n };\n this._onLayout = nativeEvent => {\n this.props.onCellLayout && this.props.onCellLayout(nativeEvent, this.props.cellKey, this.props.index);\n };\n }\n static getDerivedStateFromProps(props, prevState) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, prevState.separatorProps), {}, {\n leadingItem: props.item\n })\n };\n }\n\n // TODO: consider factoring separator stuff out of VirtualizedList into FlatList since it's not\n // reused by SectionList and we can keep VirtualizedList simpler.\n // $FlowFixMe[missing-local-annot]\n\n updateSeparatorProps(newProps) {\n this.setState(state => ({\n separatorProps: _objectSpread(_objectSpread({}, state.separatorProps), newProps)\n }));\n }\n componentWillUnmount() {\n this.props.onUnmount(this.props.cellKey);\n }\n _renderElement(renderItem, ListItemComponent, item, index) {\n if (renderItem && ListItemComponent) {\n console.warn('VirtualizedList: Both ListItemComponent and renderItem props are present. ListItemComponent will take' + ' precedence over renderItem.');\n }\n if (ListItemComponent) {\n /* $FlowFixMe[not-a-component] (>=0.108.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.108 was deployed. To\n * see the error, delete this comment and run Flow. */\n /* $FlowFixMe[incompatible-type-arg] (>=0.108.0 site=react_native_fb)\n * This comment suppresses an error found when Flow v0.108 was deployed.\n * To see the error, delete this comment and run Flow. */\n return /*#__PURE__*/React.createElement(ListItemComponent, {\n item,\n index,\n separators: this._separators\n });\n }\n if (renderItem) {\n return renderItem({\n item,\n index,\n separators: this._separators\n });\n }\n invariant(false, 'VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.');\n }\n render() {\n var _this$props4 = this.props,\n CellRendererComponent = _this$props4.CellRendererComponent,\n ItemSeparatorComponent = _this$props4.ItemSeparatorComponent,\n ListItemComponent = _this$props4.ListItemComponent,\n cellKey = _this$props4.cellKey,\n horizontal = _this$props4.horizontal,\n item = _this$props4.item,\n index = _this$props4.index,\n inversionStyle = _this$props4.inversionStyle,\n onCellFocusCapture = _this$props4.onCellFocusCapture,\n onCellLayout = _this$props4.onCellLayout,\n renderItem = _this$props4.renderItem;\n var element = this._renderElement(renderItem, ListItemComponent, item, index);\n\n // NOTE: that when this is a sticky header, `onLayout` will get automatically extracted and\n // called explicitly by `ScrollViewStickyHeader`.\n var itemSeparator = /*#__PURE__*/React.isValidElement(ItemSeparatorComponent) ?\n // $FlowFixMe[incompatible-type]\n ItemSeparatorComponent :\n // $FlowFixMe[incompatible-type]\n ItemSeparatorComponent && /*#__PURE__*/React.createElement(ItemSeparatorComponent, this.state.separatorProps);\n var cellStyle = inversionStyle ? horizontal ? [styles.rowReverse, inversionStyle] : [styles.columnReverse, inversionStyle] : horizontal ? [styles.row, inversionStyle] : inversionStyle;\n var result = !CellRendererComponent ? /*#__PURE__*/React.createElement(View, _extends({\n style: cellStyle,\n onFocusCapture: onCellFocusCapture\n }, onCellLayout && {\n onLayout: this._onLayout\n }), element, itemSeparator) : /*#__PURE__*/React.createElement(CellRendererComponent, _extends({\n cellKey: cellKey,\n index: index,\n item: item,\n style: cellStyle,\n onFocusCapture: onCellFocusCapture\n }, onCellLayout && {\n onLayout: this._onLayout\n }), element, itemSeparator);\n return /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this.props.cellKey\n }, result);\n }\n}\nvar styles = StyleSheet.create({\n row: {\n flexDirection: 'row'\n },\n rowReverse: {\n flexDirection: 'row-reverse'\n },\n columnReverse: {\n flexDirection: 'column-reverse'\n }\n});","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n\n'use strict';\n\n/**\n * Used to find the indices of the frames that overlap the given offsets. Useful for finding the\n * items that bound different windows of content, such as the visible area or the buffered overscan\n * area.\n */\nexport function elementsThatOverlapOffsets(offsets, props, getFrameMetrics, zoomScale) {\n if (zoomScale === void 0) {\n zoomScale = 1;\n }\n var itemCount = props.getItemCount(props.data);\n var result = [];\n for (var offsetIndex = 0; offsetIndex < offsets.length; offsetIndex++) {\n var currentOffset = offsets[offsetIndex];\n var left = 0;\n var right = itemCount - 1;\n while (left <= right) {\n // eslint-disable-next-line no-bitwise\n var mid = left + (right - left >>> 1);\n var frame = getFrameMetrics(mid, props);\n var scaledOffsetStart = frame.offset * zoomScale;\n var scaledOffsetEnd = (frame.offset + frame.length) * zoomScale;\n\n // We want the first frame that contains the offset, with inclusive bounds. Thus, for the\n // first frame the scaledOffsetStart is inclusive, while for other frames it is exclusive.\n if (mid === 0 && currentOffset < scaledOffsetStart || mid !== 0 && currentOffset <= scaledOffsetStart) {\n right = mid - 1;\n } else if (currentOffset > scaledOffsetEnd) {\n left = mid + 1;\n } else {\n result[offsetIndex] = mid;\n break;\n }\n }\n }\n return result;\n}\n\n/**\n * Computes the number of elements in the `next` range that are new compared to the `prev` range.\n * Handy for calculating how many new items will be rendered when the render window changes so we\n * can restrict the number of new items render at once so that content can appear on the screen\n * faster.\n */\nexport function newRangeCount(prev, next) {\n return next.last - next.first + 1 - Math.max(0, 1 + Math.min(next.last, prev.last) - Math.max(next.first, prev.first));\n}\n\n/**\n * Custom logic for determining which items should be rendered given the current frame and scroll\n * metrics, as well as the previous render state. The algorithm may evolve over time, but generally\n * prioritizes the visible area first, then expands that with overscan regions ahead and behind,\n * biased in the direction of scroll.\n */\nexport function computeWindowedRenderLimits(props, maxToRenderPerBatch, windowSize, prev, getFrameMetricsApprox, scrollMetrics) {\n var itemCount = props.getItemCount(props.data);\n if (itemCount === 0) {\n return {\n first: 0,\n last: -1\n };\n }\n var offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength,\n _scrollMetrics$zoomSc = scrollMetrics.zoomScale,\n zoomScale = _scrollMetrics$zoomSc === void 0 ? 1 : _scrollMetrics$zoomSc;\n\n // Start with visible area, then compute maximum overscan region by expanding from there, biased\n // in the direction of scroll. Total overscan area is capped, which should cap memory consumption\n // too.\n var visibleBegin = Math.max(0, offset);\n var visibleEnd = visibleBegin + visibleLength;\n var overscanLength = (windowSize - 1) * visibleLength;\n\n // Considering velocity seems to introduce more churn than it's worth.\n var leadFactor = 0.5; // Math.max(0, Math.min(1, velocity / 25 + 0.5));\n\n var fillPreference = velocity > 1 ? 'after' : velocity < -1 ? 'before' : 'none';\n var overscanBegin = Math.max(0, visibleBegin - (1 - leadFactor) * overscanLength);\n var overscanEnd = Math.max(0, visibleEnd + leadFactor * overscanLength);\n var lastItemOffset = getFrameMetricsApprox(itemCount - 1, props).offset * zoomScale;\n if (lastItemOffset < overscanBegin) {\n // Entire list is before our overscan window\n return {\n first: Math.max(0, itemCount - 1 - maxToRenderPerBatch),\n last: itemCount - 1\n };\n }\n\n // Find the indices that correspond to the items at the render boundaries we're targeting.\n var _elementsThatOverlapO = elementsThatOverlapOffsets([overscanBegin, visibleBegin, visibleEnd, overscanEnd], props, getFrameMetricsApprox, zoomScale),\n overscanFirst = _elementsThatOverlapO[0],\n first = _elementsThatOverlapO[1],\n last = _elementsThatOverlapO[2],\n overscanLast = _elementsThatOverlapO[3];\n overscanFirst = overscanFirst == null ? 0 : overscanFirst;\n first = first == null ? Math.max(0, overscanFirst) : first;\n overscanLast = overscanLast == null ? itemCount - 1 : overscanLast;\n last = last == null ? Math.min(overscanLast, first + maxToRenderPerBatch - 1) : last;\n var visible = {\n first,\n last\n };\n\n // We want to limit the number of new cells we're rendering per batch so that we can fill the\n // content on the screen quickly. If we rendered the entire overscan window at once, the user\n // could be staring at white space for a long time waiting for a bunch of offscreen content to\n // render.\n var newCellCount = newRangeCount(prev, visible);\n while (true) {\n if (first <= overscanFirst && last >= overscanLast) {\n // If we fill the entire overscan range, we're done.\n break;\n }\n var maxNewCells = newCellCount >= maxToRenderPerBatch;\n var firstWillAddMore = first <= prev.first || first > prev.last;\n var firstShouldIncrement = first > overscanFirst && (!maxNewCells || !firstWillAddMore);\n var lastWillAddMore = last >= prev.last || last < prev.first;\n var lastShouldIncrement = last < overscanLast && (!maxNewCells || !lastWillAddMore);\n if (maxNewCells && !firstShouldIncrement && !lastShouldIncrement) {\n // We only want to stop if we've hit maxNewCells AND we cannot increment first or last\n // without rendering new items. This let's us preserve as many already rendered items as\n // possible, reducing render churn and keeping the rendered overscan range as large as\n // possible.\n break;\n }\n if (firstShouldIncrement && !(fillPreference === 'after' && lastShouldIncrement && lastWillAddMore)) {\n if (firstWillAddMore) {\n newCellCount++;\n }\n first--;\n }\n if (lastShouldIncrement && !(fillPreference === 'before' && firstShouldIncrement && firstWillAddMore)) {\n if (lastWillAddMore) {\n newCellCount++;\n }\n last++;\n }\n }\n if (!(last >= first && first >= 0 && last < itemCount && first >= overscanFirst && last <= overscanLast && first <= visible.first && last >= visible.last)) {\n throw new Error('Bad window calculation ' + JSON.stringify({\n first,\n last,\n itemCount,\n overscanFirst,\n overscanLast,\n visible\n }));\n }\n return {\n first,\n last\n };\n}\nexport function keyExtractor(item, index) {\n if (typeof item === 'object' && (item == null ? void 0 : item.key) != null) {\n return item.key;\n }\n if (typeof item === 'object' && (item == null ? void 0 : item.id) != null) {\n return item.id;\n }\n return String(index);\n}","import _createForOfIteratorHelperLoose from \"@babel/runtime/helpers/createForOfIteratorHelperLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n\nimport RefreshControl from '../../../exports/RefreshControl';\nimport ScrollView from '../../../exports/ScrollView';\nimport View from '../../../exports/View';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport findNodeHandle from '../../../exports/findNodeHandle';\nimport Batchinator from '../Batchinator';\nimport clamp from '../Utilities/clamp';\nimport infoLog from '../infoLog';\nimport { CellRenderMask } from './CellRenderMask';\nimport ChildListCollection from './ChildListCollection';\nimport FillRateHelper from '../FillRateHelper';\nimport StateSafePureComponent from './StateSafePureComponent';\nimport ViewabilityHelper from '../ViewabilityHelper';\nimport CellRenderer from './VirtualizedListCellRenderer';\nimport { VirtualizedListCellContextProvider, VirtualizedListContext, VirtualizedListContextProvider } from './VirtualizedListContext.js';\nimport { computeWindowedRenderLimits, keyExtractor as defaultKeyExtractor } from '../VirtualizeUtils';\nimport invariant from 'fbjs/lib/invariant';\nimport nullthrows from 'nullthrows';\nimport * as React from 'react';\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nvar ON_EDGE_REACHED_EPSILON = 0.001;\nvar _usedIndexForKey = false;\nvar _keylessItemComponentName = '';\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */\n\n// horizontalOrDefault(this.props.horizontal)\nfunction horizontalOrDefault(horizontal) {\n return horizontal !== null && horizontal !== void 0 ? horizontal : false;\n}\n\n// initialNumToRenderOrDefault(this.props.initialNumToRender)\nfunction initialNumToRenderOrDefault(initialNumToRender) {\n return initialNumToRender !== null && initialNumToRender !== void 0 ? initialNumToRender : 10;\n}\n\n// maxToRenderPerBatchOrDefault(this.props.maxToRenderPerBatch)\nfunction maxToRenderPerBatchOrDefault(maxToRenderPerBatch) {\n return maxToRenderPerBatch !== null && maxToRenderPerBatch !== void 0 ? maxToRenderPerBatch : 10;\n}\n\n// onStartReachedThresholdOrDefault(this.props.onStartReachedThreshold)\nfunction onStartReachedThresholdOrDefault(onStartReachedThreshold) {\n return onStartReachedThreshold !== null && onStartReachedThreshold !== void 0 ? onStartReachedThreshold : 2;\n}\n\n// onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold)\nfunction onEndReachedThresholdOrDefault(onEndReachedThreshold) {\n return onEndReachedThreshold !== null && onEndReachedThreshold !== void 0 ? onEndReachedThreshold : 2;\n}\n\n// getScrollingThreshold(visibleLength, onEndReachedThreshold)\nfunction getScrollingThreshold(threshold, visibleLength) {\n return threshold * visibleLength / 2;\n}\n\n// scrollEventThrottleOrDefault(this.props.scrollEventThrottle)\nfunction scrollEventThrottleOrDefault(scrollEventThrottle) {\n return scrollEventThrottle !== null && scrollEventThrottle !== void 0 ? scrollEventThrottle : 50;\n}\n\n// windowSizeOrDefault(this.props.windowSize)\nfunction windowSizeOrDefault(windowSize) {\n return windowSize !== null && windowSize !== void 0 ? windowSize : 21;\n}\nfunction findLastWhere(arr, predicate) {\n for (var i = arr.length - 1; i >= 0; i--) {\n if (predicate(arr[i])) {\n return arr[i];\n }\n }\n return null;\n}\n\n/**\n * Base implementation for the more convenient [``](https://reactnative.dev/docs/flatlist)\n * and [``](https://reactnative.dev/docs/sectionlist) components, which are also better\n * documented. In general, this should only really be used if you need more flexibility than\n * `FlatList` provides, e.g. for use with immutable data instead of plain arrays.\n *\n * Virtualization massively improves memory consumption and performance of large lists by\n * maintaining a finite render window of active items and replacing all items outside of the render\n * window with appropriately sized blank space. The window adapts to scrolling behavior, and items\n * are rendered incrementally with low-pri (after any running interactions) if they are far from the\n * visible area, or with hi-pri otherwise to minimize the potential of seeing blank space.\n *\n * Some caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` or `id` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n * - As an effort to remove defaultProps, use helper functions when referencing certain props\n *\n */\nclass VirtualizedList extends StateSafePureComponent {\n // scrollToEnd may be janky without getItemLayout prop\n scrollToEnd(params) {\n var animated = params ? params.animated : true;\n var veryLast = this.props.getItemCount(this.props.data) - 1;\n if (veryLast < 0) {\n return;\n }\n var frame = this.__getFrameMetricsApprox(veryLast, this.props);\n var offset = Math.max(0, frame.offset + frame.length + this._footerLength - this._scrollMetrics.visibleLength);\n if (this._scrollRef == null) {\n return;\n }\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n }\n\n // scrollToIndex may be janky without getItemLayout prop\n scrollToIndex(params) {\n var _this$props = this.props,\n data = _this$props.data,\n horizontal = _this$props.horizontal,\n getItemCount = _this$props.getItemCount,\n getItemLayout = _this$props.getItemLayout,\n onScrollToIndexFailed = _this$props.onScrollToIndexFailed;\n var animated = params.animated,\n index = params.index,\n viewOffset = params.viewOffset,\n viewPosition = params.viewPosition;\n invariant(index >= 0, \"scrollToIndex out of range: requested index \" + index + \" but minimum is 0\");\n invariant(getItemCount(data) >= 1, \"scrollToIndex out of range: item length \" + getItemCount(data) + \" but minimum is 1\");\n invariant(index < getItemCount(data), \"scrollToIndex out of range: requested index \" + index + \" is out of 0 to \" + (getItemCount(data) - 1));\n if (!getItemLayout && index > this._highestMeasuredFrameIndex) {\n invariant(!!onScrollToIndexFailed, 'scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, ' + 'otherwise there is no way to know the location of offscreen indices or handle failures.');\n onScrollToIndexFailed({\n averageItemLength: this._averageCellLength,\n highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,\n index\n });\n return;\n }\n var frame = this.__getFrameMetricsApprox(Math.floor(index), this.props);\n var offset = Math.max(0, this._getOffsetApprox(index, this.props) - (viewPosition || 0) * (this._scrollMetrics.visibleLength - frame.length)) - (viewOffset || 0);\n if (this._scrollRef == null) {\n return;\n }\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n this._scrollRef.scrollTo(horizontal ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n }\n\n // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -\n // use scrollToIndex instead if possible.\n scrollToItem(params) {\n var item = params.item;\n var _this$props2 = this.props,\n data = _this$props2.data,\n getItem = _this$props2.getItem,\n getItemCount = _this$props2.getItemCount;\n var itemCount = getItemCount(data);\n for (var _index = 0; _index < itemCount; _index++) {\n if (getItem(data, _index) === item) {\n this.scrollToIndex(_objectSpread(_objectSpread({}, params), {}, {\n index: _index\n }));\n break;\n }\n }\n }\n\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Param `offset` expects the offset to scroll to.\n * In case of `horizontal` is true, the offset is the x-value,\n * in any other case the offset is the y-value.\n *\n * Param `animated` (`true` by default) defines whether the list\n * should do an animation while scrolling.\n */\n scrollToOffset(params) {\n var animated = params.animated,\n offset = params.offset;\n if (this._scrollRef == null) {\n return;\n }\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {\n x: offset,\n animated\n } : {\n y: offset,\n animated\n });\n }\n recordInteraction() {\n this._nestedChildLists.forEach(childList => {\n childList.recordInteraction();\n });\n this._viewabilityTuples.forEach(t => {\n t.viewabilityHelper.recordInteraction();\n });\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n }\n flashScrollIndicators() {\n if (this._scrollRef == null) {\n return;\n }\n this._scrollRef.flashScrollIndicators();\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n * Note that `this._scrollRef` might not be a `ScrollView`, so we\n * need to check that it responds to `getScrollResponder` before calling it.\n */\n getScrollResponder() {\n if (this._scrollRef && this._scrollRef.getScrollResponder) {\n return this._scrollRef.getScrollResponder();\n }\n }\n getScrollableNode() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n return this._scrollRef.getScrollableNode();\n } else {\n return this._scrollRef;\n }\n }\n getScrollRef() {\n if (this._scrollRef && this._scrollRef.getScrollRef) {\n return this._scrollRef.getScrollRef();\n } else {\n return this._scrollRef;\n }\n }\n _getCellKey() {\n var _this$context;\n return ((_this$context = this.context) == null ? void 0 : _this$context.cellKey) || 'rootList';\n }\n\n // $FlowFixMe[missing-local-annot]\n\n hasMore() {\n return this._hasMore;\n }\n\n // $FlowFixMe[missing-local-annot]\n\n constructor(_props) {\n var _this$props$updateCel;\n super(_props);\n this._getScrollMetrics = () => {\n return this._scrollMetrics;\n };\n this._getOutermostParentListRef = () => {\n if (this._isNestedWithSameOrientation()) {\n return this.context.getOutermostParentListRef();\n } else {\n return this;\n }\n };\n this._registerAsNestedChild = childList => {\n this._nestedChildLists.add(childList.ref, childList.cellKey);\n if (this._hasInteracted) {\n childList.ref.recordInteraction();\n }\n };\n this._unregisterAsNestedChild = childList => {\n this._nestedChildLists.remove(childList.ref);\n };\n this._onUpdateSeparators = (keys, newProps) => {\n keys.forEach(key => {\n var ref = key != null && this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n });\n };\n this._getSpacerKey = isVertical => isVertical ? 'height' : 'width';\n this._averageCellLength = 0;\n this._cellRefs = {};\n this._frames = {};\n this._footerLength = 0;\n this._hasTriggeredInitialScrollToIndex = false;\n this._hasInteracted = false;\n this._hasMore = false;\n this._hasWarned = {};\n this._headerLength = 0;\n this._hiPriInProgress = false;\n this._highestMeasuredFrameIndex = 0;\n this._indicesToKeys = new Map();\n this._lastFocusedCellKey = null;\n this._nestedChildLists = new ChildListCollection();\n this._offsetFromParentVirtualizedList = 0;\n this._prevParentOffset = 0;\n this._scrollMetrics = {\n contentLength: 0,\n dOffset: 0,\n dt: 10,\n offset: 0,\n timestamp: 0,\n velocity: 0,\n visibleLength: 0,\n zoomScale: 1\n };\n this._scrollRef = null;\n this._sentStartForContentLength = 0;\n this._sentEndForContentLength = 0;\n this._totalCellLength = 0;\n this._totalCellsMeasured = 0;\n this._viewabilityTuples = [];\n this._captureScrollRef = ref => {\n this._scrollRef = ref;\n };\n this._defaultRenderScrollComponent = props => {\n var onRefresh = props.onRefresh;\n if (this._isNestedWithSameOrientation()) {\n // $FlowFixMe[prop-missing] - Typing ReactNativeComponent revealed errors\n return /*#__PURE__*/React.createElement(View, props);\n } else if (onRefresh) {\n var _props$refreshing;\n invariant(typeof props.refreshing === 'boolean', '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' + JSON.stringify((_props$refreshing = props.refreshing) !== null && _props$refreshing !== void 0 ? _props$refreshing : 'undefined') + '`');\n return (\n /*#__PURE__*/\n // $FlowFixMe[prop-missing] Invalid prop usage\n // $FlowFixMe[incompatible-use]\n React.createElement(ScrollView, _extends({}, props, {\n refreshControl: props.refreshControl == null ? /*#__PURE__*/React.createElement(RefreshControl\n // $FlowFixMe[incompatible-type]\n , {\n refreshing: props.refreshing,\n onRefresh: onRefresh,\n progressViewOffset: props.progressViewOffset\n }) : props.refreshControl\n }))\n );\n } else {\n // $FlowFixMe[prop-missing] Invalid prop usage\n // $FlowFixMe[incompatible-use]\n return /*#__PURE__*/React.createElement(ScrollView, props);\n }\n };\n this._onCellLayout = (e, cellKey, index) => {\n var layout = e.nativeEvent.layout;\n var next = {\n offset: this._selectOffset(layout),\n length: this._selectLength(layout),\n index,\n inLayout: true\n };\n var curr = this._frames[cellKey];\n if (!curr || next.offset !== curr.offset || next.length !== curr.length || index !== curr.index) {\n this._totalCellLength += next.length - (curr ? curr.length : 0);\n this._totalCellsMeasured += curr ? 0 : 1;\n this._averageCellLength = this._totalCellLength / this._totalCellsMeasured;\n this._frames[cellKey] = next;\n this._highestMeasuredFrameIndex = Math.max(this._highestMeasuredFrameIndex, index);\n this._scheduleCellsToRenderUpdate();\n } else {\n this._frames[cellKey].inLayout = true;\n }\n this._triggerRemeasureForChildListsInCell(cellKey);\n this._computeBlankness();\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n };\n this._onCellUnmount = cellKey => {\n delete this._cellRefs[cellKey];\n var curr = this._frames[cellKey];\n if (curr) {\n this._frames[cellKey] = _objectSpread(_objectSpread({}, curr), {}, {\n inLayout: false\n });\n }\n };\n this._onLayout = e => {\n if (this._isNestedWithSameOrientation()) {\n // Need to adjust our scroll metrics to be relative to our containing\n // VirtualizedList before we can make claims about list item viewability\n this.measureLayoutRelativeToContainingList();\n } else {\n this._scrollMetrics.visibleLength = this._selectLength(e.nativeEvent.layout);\n }\n this.props.onLayout && this.props.onLayout(e);\n this._scheduleCellsToRenderUpdate();\n this._maybeCallOnEdgeReached();\n };\n this._onLayoutEmpty = e => {\n this.props.onLayout && this.props.onLayout(e);\n };\n this._onLayoutFooter = e => {\n this._triggerRemeasureForChildListsInCell(this._getFooterCellKey());\n this._footerLength = this._selectLength(e.nativeEvent.layout);\n };\n this._onLayoutHeader = e => {\n this._headerLength = this._selectLength(e.nativeEvent.layout);\n };\n this._onContentSizeChange = (width, height) => {\n if (width > 0 && height > 0 && this.props.initialScrollIndex != null && this.props.initialScrollIndex > 0 && !this._hasTriggeredInitialScrollToIndex) {\n if (this.props.contentOffset == null) {\n if (this.props.initialScrollIndex < this.props.getItemCount(this.props.data)) {\n this.scrollToIndex({\n animated: false,\n index: nullthrows(this.props.initialScrollIndex)\n });\n } else {\n this.scrollToEnd({\n animated: false\n });\n }\n }\n this._hasTriggeredInitialScrollToIndex = true;\n }\n if (this.props.onContentSizeChange) {\n this.props.onContentSizeChange(width, height);\n }\n this._scrollMetrics.contentLength = this._selectLength({\n height,\n width\n });\n this._scheduleCellsToRenderUpdate();\n this._maybeCallOnEdgeReached();\n };\n this._convertParentScrollMetrics = metrics => {\n // Offset of the top of the nested list relative to the top of its parent's viewport\n var offset = metrics.offset - this._offsetFromParentVirtualizedList;\n // Child's visible length is the same as its parent's\n var visibleLength = metrics.visibleLength;\n var dOffset = offset - this._scrollMetrics.offset;\n var contentLength = this._scrollMetrics.contentLength;\n return {\n visibleLength,\n contentLength,\n offset,\n dOffset\n };\n };\n this._onScroll = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onScroll(e);\n });\n if (this.props.onScroll) {\n this.props.onScroll(e);\n }\n var timestamp = e.timeStamp;\n var visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement);\n var contentLength = this._selectLength(e.nativeEvent.contentSize);\n var offset = this._selectOffset(e.nativeEvent.contentOffset);\n var dOffset = offset - this._scrollMetrics.offset;\n if (this._isNestedWithSameOrientation()) {\n if (this._scrollMetrics.contentLength === 0) {\n // Ignore scroll events until onLayout has been called and we\n // know our offset from our offset from our parent\n return;\n }\n var _this$_convertParentS = this._convertParentScrollMetrics({\n visibleLength,\n offset\n });\n visibleLength = _this$_convertParentS.visibleLength;\n contentLength = _this$_convertParentS.contentLength;\n offset = _this$_convertParentS.offset;\n dOffset = _this$_convertParentS.dOffset;\n }\n var dt = this._scrollMetrics.timestamp ? Math.max(1, timestamp - this._scrollMetrics.timestamp) : 1;\n var velocity = dOffset / dt;\n if (dt > 500 && this._scrollMetrics.dt > 500 && contentLength > 5 * visibleLength && !this._hasWarned.perf) {\n infoLog('VirtualizedList: You have a large list that is slow to update - make sure your ' + 'renderItem function renders components that follow React performance best practices ' + 'like PureComponent, shouldComponentUpdate, etc.', {\n dt,\n prevDt: this._scrollMetrics.dt,\n contentLength\n });\n this._hasWarned.perf = true;\n }\n\n // For invalid negative values (w/ RTL), set this to 1.\n var zoomScale = e.nativeEvent.zoomScale < 0 ? 1 : e.nativeEvent.zoomScale;\n this._scrollMetrics = {\n contentLength,\n dt,\n dOffset,\n offset,\n timestamp,\n velocity,\n visibleLength,\n zoomScale\n };\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n if (!this.props) {\n return;\n }\n this._maybeCallOnEdgeReached();\n if (velocity !== 0) {\n this._fillRateHelper.activate();\n }\n this._computeBlankness();\n this._scheduleCellsToRenderUpdate();\n };\n this._onScrollBeginDrag = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onScrollBeginDrag(e);\n });\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.recordInteraction();\n });\n this._hasInteracted = true;\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n };\n this._onScrollEndDrag = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onScrollEndDrag(e);\n });\n var velocity = e.nativeEvent.velocity;\n if (velocity) {\n this._scrollMetrics.velocity = this._selectOffset(velocity);\n }\n this._computeBlankness();\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n };\n this._onMomentumScrollBegin = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onMomentumScrollBegin(e);\n });\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n };\n this._onMomentumScrollEnd = e => {\n this._nestedChildLists.forEach(childList => {\n childList._onMomentumScrollEnd(e);\n });\n this._scrollMetrics.velocity = 0;\n this._computeBlankness();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n };\n this._updateCellsToRender = () => {\n this._updateViewableItems(this.props, this.state.cellsAroundViewport);\n this.setState((state, props) => {\n var cellsAroundViewport = this._adjustCellsAroundViewport(props, state.cellsAroundViewport);\n var renderMask = VirtualizedList._createRenderMask(props, cellsAroundViewport, this._getNonViewportRenderRegions(props));\n if (cellsAroundViewport.first === state.cellsAroundViewport.first && cellsAroundViewport.last === state.cellsAroundViewport.last && renderMask.equals(state.renderMask)) {\n return null;\n }\n return {\n cellsAroundViewport,\n renderMask\n };\n });\n };\n this._createViewToken = (index, isViewable, props\n // $FlowFixMe[missing-local-annot]\n ) => {\n var data = props.data,\n getItem = props.getItem;\n var item = getItem(data, index);\n return {\n index,\n item,\n key: this._keyExtractor(item, index, props),\n isViewable\n };\n };\n this._getOffsetApprox = (index, props) => {\n if (Number.isInteger(index)) {\n return this.__getFrameMetricsApprox(index, props).offset;\n } else {\n var frameMetrics = this.__getFrameMetricsApprox(Math.floor(index), props);\n var remainder = index - Math.floor(index);\n return frameMetrics.offset + remainder * frameMetrics.length;\n }\n };\n this.__getFrameMetricsApprox = (index, props) => {\n var frame = this._getFrameMetrics(index, props);\n if (frame && frame.index === index) {\n // check for invalid frames due to row re-ordering\n return frame;\n } else {\n var data = props.data,\n getItemCount = props.getItemCount,\n getItemLayout = props.getItemLayout;\n invariant(index >= 0 && index < getItemCount(data), 'Tried to get frame for out of range index ' + index);\n invariant(!getItemLayout, 'Should not have to estimate frames when a measurement metrics function is provided');\n return {\n length: this._averageCellLength,\n offset: this._averageCellLength * index\n };\n }\n };\n this._getFrameMetrics = (index, props) => {\n var data = props.data,\n getItem = props.getItem,\n getItemCount = props.getItemCount,\n getItemLayout = props.getItemLayout;\n invariant(index >= 0 && index < getItemCount(data), 'Tried to get frame for out of range index ' + index);\n var item = getItem(data, index);\n var frame = this._frames[this._keyExtractor(item, index, props)];\n if (!frame || frame.index !== index) {\n if (getItemLayout) {\n /* $FlowFixMe[prop-missing] (>=0.63.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.63 was deployed. To see the error\n * delete this comment and run Flow. */\n return getItemLayout(data, index);\n }\n }\n return frame;\n };\n this._getNonViewportRenderRegions = props => {\n // Keep a viewport's worth of content around the last focused cell to allow\n // random navigation around it without any blanking. E.g. tabbing from one\n // focused item out of viewport to another.\n if (!(this._lastFocusedCellKey && this._cellRefs[this._lastFocusedCellKey])) {\n return [];\n }\n var lastFocusedCellRenderer = this._cellRefs[this._lastFocusedCellKey];\n var focusedCellIndex = lastFocusedCellRenderer.props.index;\n var itemCount = props.getItemCount(props.data);\n\n // The last cell we rendered may be at a new index. Bail if we don't know\n // where it is.\n if (focusedCellIndex >= itemCount || this._keyExtractor(props.getItem(props.data, focusedCellIndex), focusedCellIndex, props) !== this._lastFocusedCellKey) {\n return [];\n }\n var first = focusedCellIndex;\n var heightOfCellsBeforeFocused = 0;\n for (var i = first - 1; i >= 0 && heightOfCellsBeforeFocused < this._scrollMetrics.visibleLength; i--) {\n first--;\n heightOfCellsBeforeFocused += this.__getFrameMetricsApprox(i, props).length;\n }\n var last = focusedCellIndex;\n var heightOfCellsAfterFocused = 0;\n for (var _i = last + 1; _i < itemCount && heightOfCellsAfterFocused < this._scrollMetrics.visibleLength; _i++) {\n last++;\n heightOfCellsAfterFocused += this.__getFrameMetricsApprox(_i, props).length;\n }\n return [{\n first,\n last\n }];\n };\n this._checkProps(_props);\n this._fillRateHelper = new FillRateHelper(this._getFrameMetrics);\n this._updateCellsToRenderBatcher = new Batchinator(this._updateCellsToRender, (_this$props$updateCel = this.props.updateCellsBatchingPeriod) !== null && _this$props$updateCel !== void 0 ? _this$props$updateCel : 50);\n if (this.props.viewabilityConfigCallbackPairs) {\n this._viewabilityTuples = this.props.viewabilityConfigCallbackPairs.map(pair => ({\n viewabilityHelper: new ViewabilityHelper(pair.viewabilityConfig),\n onViewableItemsChanged: pair.onViewableItemsChanged\n }));\n } else {\n var _this$props3 = this.props,\n onViewableItemsChanged = _this$props3.onViewableItemsChanged,\n viewabilityConfig = _this$props3.viewabilityConfig;\n if (onViewableItemsChanged) {\n this._viewabilityTuples.push({\n viewabilityHelper: new ViewabilityHelper(viewabilityConfig),\n onViewableItemsChanged: onViewableItemsChanged\n });\n }\n }\n var initialRenderRegion = VirtualizedList._initialRenderRegion(_props);\n this.state = {\n cellsAroundViewport: initialRenderRegion,\n renderMask: VirtualizedList._createRenderMask(_props, initialRenderRegion)\n };\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n // For issue https://github.com/necolas/react-native-web/issues/995\n this.invertedWheelEventHandler = ev => {\n var scrollOffset = this.props.horizontal ? ev.target.scrollLeft : ev.target.scrollTop;\n var scrollLength = this.props.horizontal ? ev.target.scrollWidth : ev.target.scrollHeight;\n var clientLength = this.props.horizontal ? ev.target.clientWidth : ev.target.clientHeight;\n var isEventTargetScrollable = scrollLength > clientLength;\n var delta = this.props.horizontal ? ev.deltaX || ev.wheelDeltaX : ev.deltaY || ev.wheelDeltaY;\n var leftoverDelta = delta;\n if (isEventTargetScrollable) {\n leftoverDelta = delta < 0 ? Math.min(delta + scrollOffset, 0) : Math.max(delta - (scrollLength - clientLength - scrollOffset), 0);\n }\n var targetDelta = delta - leftoverDelta;\n if (this.props.inverted && this._scrollRef && this._scrollRef.getScrollableNode) {\n var node = this._scrollRef.getScrollableNode();\n if (this.props.horizontal) {\n ev.target.scrollLeft += targetDelta;\n var nextScrollLeft = node.scrollLeft - leftoverDelta;\n node.scrollLeft = !this.props.getItemLayout ? Math.min(nextScrollLeft, this._totalCellLength) : nextScrollLeft;\n } else {\n ev.target.scrollTop += targetDelta;\n var nextScrollTop = node.scrollTop - leftoverDelta;\n node.scrollTop = !this.props.getItemLayout ? Math.min(nextScrollTop, this._totalCellLength) : nextScrollTop;\n }\n ev.preventDefault();\n }\n };\n }\n _checkProps(props) {\n var onScroll = props.onScroll,\n windowSize = props.windowSize,\n getItemCount = props.getItemCount,\n data = props.data,\n initialScrollIndex = props.initialScrollIndex;\n invariant(\n // $FlowFixMe[prop-missing]\n !onScroll || !onScroll.__isNative, 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent ' + 'to support native onScroll events with useNativeDriver');\n invariant(windowSizeOrDefault(windowSize) > 0, 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.');\n invariant(getItemCount, 'VirtualizedList: The \"getItemCount\" prop must be provided');\n var itemCount = getItemCount(data);\n if (initialScrollIndex != null && !this._hasTriggeredInitialScrollToIndex && (initialScrollIndex < 0 || itemCount > 0 && initialScrollIndex >= itemCount) && !this._hasWarned.initialScrollIndex) {\n console.warn(\"initialScrollIndex \\\"\" + initialScrollIndex + \"\\\" is not valid (list has \" + itemCount + \" items)\");\n this._hasWarned.initialScrollIndex = true;\n }\n if (__DEV__ && !this._hasWarned.flexWrap) {\n // $FlowFixMe[underconstrained-implicit-instantiation]\n var flatStyles = StyleSheet.flatten(this.props.contentContainerStyle);\n if (flatStyles != null && flatStyles.flexWrap === 'wrap') {\n console.warn('`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.' + 'Consider using `numColumns` with `FlatList` instead.');\n this._hasWarned.flexWrap = true;\n }\n }\n }\n static _createRenderMask(props, cellsAroundViewport, additionalRegions) {\n var itemCount = props.getItemCount(props.data);\n invariant(cellsAroundViewport.first >= 0 && cellsAroundViewport.last >= cellsAroundViewport.first - 1 && cellsAroundViewport.last < itemCount, \"Invalid cells around viewport \\\"[\" + cellsAroundViewport.first + \", \" + cellsAroundViewport.last + \"]\\\" was passed to VirtualizedList._createRenderMask\");\n var renderMask = new CellRenderMask(itemCount);\n if (itemCount > 0) {\n var allRegions = [cellsAroundViewport, ...(additionalRegions !== null && additionalRegions !== void 0 ? additionalRegions : [])];\n for (var _i2 = 0, _allRegions = allRegions; _i2 < _allRegions.length; _i2++) {\n var region = _allRegions[_i2];\n renderMask.addCells(region);\n }\n\n // The initially rendered cells are retained as part of the\n // \"scroll-to-top\" optimization\n if (props.initialScrollIndex == null || props.initialScrollIndex <= 0) {\n var initialRegion = VirtualizedList._initialRenderRegion(props);\n renderMask.addCells(initialRegion);\n }\n\n // The layout coordinates of sticker headers may be off-screen while the\n // actual header is on-screen. Keep the most recent before the viewport\n // rendered, even if its layout coordinates are not in viewport.\n var stickyIndicesSet = new Set(props.stickyHeaderIndices);\n VirtualizedList._ensureClosestStickyHeader(props, stickyIndicesSet, renderMask, cellsAroundViewport.first);\n }\n return renderMask;\n }\n static _initialRenderRegion(props) {\n var _props$initialScrollI;\n var itemCount = props.getItemCount(props.data);\n var firstCellIndex = Math.max(0, Math.min(itemCount - 1, Math.floor((_props$initialScrollI = props.initialScrollIndex) !== null && _props$initialScrollI !== void 0 ? _props$initialScrollI : 0)));\n var lastCellIndex = Math.min(itemCount, firstCellIndex + initialNumToRenderOrDefault(props.initialNumToRender)) - 1;\n return {\n first: firstCellIndex,\n last: lastCellIndex\n };\n }\n static _ensureClosestStickyHeader(props, stickyIndicesSet, renderMask, cellIdx) {\n var stickyOffset = props.ListHeaderComponent ? 1 : 0;\n for (var itemIdx = cellIdx - 1; itemIdx >= 0; itemIdx--) {\n if (stickyIndicesSet.has(itemIdx + stickyOffset)) {\n renderMask.addCells({\n first: itemIdx,\n last: itemIdx\n });\n break;\n }\n }\n }\n _adjustCellsAroundViewport(props, cellsAroundViewport) {\n var data = props.data,\n getItemCount = props.getItemCount;\n var onEndReachedThreshold = onEndReachedThresholdOrDefault(props.onEndReachedThreshold);\n var _this$_scrollMetrics = this._scrollMetrics,\n contentLength = _this$_scrollMetrics.contentLength,\n offset = _this$_scrollMetrics.offset,\n visibleLength = _this$_scrollMetrics.visibleLength;\n var distanceFromEnd = contentLength - visibleLength - offset;\n\n // Wait until the scroll view metrics have been set up. And until then,\n // we will trust the initialNumToRender suggestion\n if (visibleLength <= 0 || contentLength <= 0) {\n return cellsAroundViewport.last >= getItemCount(data) ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props) : cellsAroundViewport;\n }\n var newCellsAroundViewport;\n if (props.disableVirtualization) {\n var renderAhead = distanceFromEnd < onEndReachedThreshold * visibleLength ? maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch) : 0;\n newCellsAroundViewport = {\n first: 0,\n last: Math.min(cellsAroundViewport.last + renderAhead, getItemCount(data) - 1)\n };\n } else {\n // If we have a non-zero initialScrollIndex and run this before we've scrolled,\n // we'll wipe out the initialNumToRender rendered elements starting at initialScrollIndex.\n // So let's wait until we've scrolled the view to the right place. And until then,\n // we will trust the initialScrollIndex suggestion.\n\n // Thus, we want to recalculate the windowed render limits if any of the following hold:\n // - initialScrollIndex is undefined or is 0\n // - initialScrollIndex > 0 AND scrolling is complete\n // - initialScrollIndex > 0 AND the end of the list is visible (this handles the case\n // where the list is shorter than the visible area)\n if (props.initialScrollIndex && !this._scrollMetrics.offset && Math.abs(distanceFromEnd) >= Number.EPSILON) {\n return cellsAroundViewport.last >= getItemCount(data) ? VirtualizedList._constrainToItemCount(cellsAroundViewport, props) : cellsAroundViewport;\n }\n newCellsAroundViewport = computeWindowedRenderLimits(props, maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch), windowSizeOrDefault(props.windowSize), cellsAroundViewport, this.__getFrameMetricsApprox, this._scrollMetrics);\n invariant(newCellsAroundViewport.last < getItemCount(data), 'computeWindowedRenderLimits() should return range in-bounds');\n }\n if (this._nestedChildLists.size() > 0) {\n // If some cell in the new state has a child list in it, we should only render\n // up through that item, so that we give that list a chance to render.\n // Otherwise there's churn from multiple child lists mounting and un-mounting\n // their items.\n\n // Will this prevent rendering if the nested list doesn't realize the end?\n var childIdx = this._findFirstChildWithMore(newCellsAroundViewport.first, newCellsAroundViewport.last);\n newCellsAroundViewport.last = childIdx !== null && childIdx !== void 0 ? childIdx : newCellsAroundViewport.last;\n }\n return newCellsAroundViewport;\n }\n _findFirstChildWithMore(first, last) {\n for (var ii = first; ii <= last; ii++) {\n var cellKeyForIndex = this._indicesToKeys.get(ii);\n if (cellKeyForIndex != null && this._nestedChildLists.anyInCell(cellKeyForIndex, childList => childList.hasMore())) {\n return ii;\n }\n }\n return null;\n }\n componentDidMount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.registerAsNestedChild({\n ref: this,\n cellKey: this.context.cellKey\n });\n }\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n this.setupWebWheelHandler();\n }\n componentWillUnmount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.unregisterAsNestedChild({\n ref: this\n });\n }\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.dispose();\n });\n this._fillRateHelper.deactivateAndFlush();\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n this.teardownWebWheelHandler();\n }\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n setupWebWheelHandler() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n this._scrollRef.getScrollableNode().addEventListener('wheel', this.invertedWheelEventHandler);\n } else {\n setTimeout(() => this.setupWebWheelHandler(), 50);\n return;\n }\n }\n\n // REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.\n teardownWebWheelHandler() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n this._scrollRef.getScrollableNode().removeEventListener('wheel', this.invertedWheelEventHandler);\n }\n }\n static getDerivedStateFromProps(newProps, prevState) {\n // first and last could be stale (e.g. if a new, shorter items props is passed in), so we make\n // sure we're rendering a reasonable range here.\n var itemCount = newProps.getItemCount(newProps.data);\n if (itemCount === prevState.renderMask.numCells()) {\n return prevState;\n }\n var constrainedCells = VirtualizedList._constrainToItemCount(prevState.cellsAroundViewport, newProps);\n return {\n cellsAroundViewport: constrainedCells,\n renderMask: VirtualizedList._createRenderMask(newProps, constrainedCells)\n };\n }\n _pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, first, last, inversionStyle) {\n var _this = this;\n var _this$props4 = this.props,\n CellRendererComponent = _this$props4.CellRendererComponent,\n ItemSeparatorComponent = _this$props4.ItemSeparatorComponent,\n ListHeaderComponent = _this$props4.ListHeaderComponent,\n ListItemComponent = _this$props4.ListItemComponent,\n data = _this$props4.data,\n debug = _this$props4.debug,\n getItem = _this$props4.getItem,\n getItemCount = _this$props4.getItemCount,\n getItemLayout = _this$props4.getItemLayout,\n horizontal = _this$props4.horizontal,\n renderItem = _this$props4.renderItem;\n var stickyOffset = ListHeaderComponent ? 1 : 0;\n var end = getItemCount(data) - 1;\n var prevCellKey;\n last = Math.min(end, last);\n var _loop = function _loop() {\n var item = getItem(data, ii);\n var key = _this._keyExtractor(item, ii, _this.props);\n _this._indicesToKeys.set(ii, key);\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n stickyHeaderIndices.push(cells.length);\n }\n var shouldListenForLayout = getItemLayout == null || debug || _this._fillRateHelper.enabled();\n cells.push( /*#__PURE__*/React.createElement(CellRenderer, _extends({\n CellRendererComponent: CellRendererComponent,\n ItemSeparatorComponent: ii < end ? ItemSeparatorComponent : undefined,\n ListItemComponent: ListItemComponent,\n cellKey: key,\n horizontal: horizontal,\n index: ii,\n inversionStyle: inversionStyle,\n item: item,\n key: key,\n prevCellKey: prevCellKey,\n onUpdateSeparators: _this._onUpdateSeparators,\n onCellFocusCapture: e => _this._onCellFocusCapture(key),\n onUnmount: _this._onCellUnmount,\n ref: _ref => {\n _this._cellRefs[key] = _ref;\n },\n renderItem: renderItem\n }, shouldListenForLayout && {\n onCellLayout: _this._onCellLayout\n })));\n prevCellKey = key;\n };\n for (var ii = first; ii <= last; ii++) {\n _loop();\n }\n }\n static _constrainToItemCount(cells, props) {\n var itemCount = props.getItemCount(props.data);\n var last = Math.min(itemCount - 1, cells.last);\n var maxToRenderPerBatch = maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch);\n return {\n first: clamp(0, itemCount - 1 - maxToRenderPerBatch, cells.first),\n last\n };\n }\n _isNestedWithSameOrientation() {\n var nestedContext = this.context;\n return !!(nestedContext && !!nestedContext.horizontal === horizontalOrDefault(this.props.horizontal));\n }\n _keyExtractor(item, index, props\n // $FlowFixMe[missing-local-annot]\n ) {\n if (props.keyExtractor != null) {\n return props.keyExtractor(item, index);\n }\n var key = defaultKeyExtractor(item, index);\n if (key === String(index)) {\n _usedIndexForKey = true;\n if (item.type && item.type.displayName) {\n _keylessItemComponentName = item.type.displayName;\n }\n }\n return key;\n }\n render() {\n this._checkProps(this.props);\n var _this$props5 = this.props,\n ListEmptyComponent = _this$props5.ListEmptyComponent,\n ListFooterComponent = _this$props5.ListFooterComponent,\n ListHeaderComponent = _this$props5.ListHeaderComponent;\n var _this$props6 = this.props,\n data = _this$props6.data,\n horizontal = _this$props6.horizontal;\n var inversionStyle = this.props.inverted ? horizontalOrDefault(this.props.horizontal) ? styles.horizontallyInverted : styles.verticallyInverted : null;\n var cells = [];\n var stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices);\n var stickyHeaderIndices = [];\n\n // 1. Add cell for ListHeaderComponent\n if (ListHeaderComponent) {\n if (stickyIndicesFromProps.has(0)) {\n stickyHeaderIndices.push(0);\n }\n var _element = /*#__PURE__*/React.isValidElement(ListHeaderComponent) ? ListHeaderComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n React.createElement(ListHeaderComponent, null);\n cells.push( /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this._getCellKey() + '-header',\n key: \"$header\"\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: this._onLayoutHeader,\n style: [inversionStyle, this.props.ListHeaderComponentStyle]\n },\n // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n _element)));\n }\n\n // 2a. Add a cell for ListEmptyComponent if applicable\n var itemCount = this.props.getItemCount(data);\n if (itemCount === 0 && ListEmptyComponent) {\n var _element2 = /*#__PURE__*/React.isValidElement(ListEmptyComponent) ? ListEmptyComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n React.createElement(ListEmptyComponent, null);\n cells.push( /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this._getCellKey() + '-empty',\n key: \"$empty\"\n }, /*#__PURE__*/React.cloneElement(_element2, {\n onLayout: event => {\n this._onLayoutEmpty(event);\n if (_element2.props.onLayout) {\n _element2.props.onLayout(event);\n }\n },\n style: [inversionStyle, _element2.props.style]\n })));\n }\n\n // 2b. Add cells and spacers for each item\n if (itemCount > 0) {\n _usedIndexForKey = false;\n _keylessItemComponentName = '';\n var spacerKey = this._getSpacerKey(!horizontal);\n var renderRegions = this.state.renderMask.enumerateRegions();\n var lastSpacer = findLastWhere(renderRegions, r => r.isSpacer);\n for (var _iterator = _createForOfIteratorHelperLoose(renderRegions), _step; !(_step = _iterator()).done;) {\n var section = _step.value;\n if (section.isSpacer) {\n // Legacy behavior is to avoid spacers when virtualization is\n // disabled (including head spacers on initial render).\n if (this.props.disableVirtualization) {\n continue;\n }\n\n // Without getItemLayout, we limit our tail spacer to the _highestMeasuredFrameIndex to\n // prevent the user for hyperscrolling into un-measured area because otherwise content will\n // likely jump around as it renders in above the viewport.\n var isLastSpacer = section === lastSpacer;\n var constrainToMeasured = isLastSpacer && !this.props.getItemLayout;\n var last = constrainToMeasured ? clamp(section.first - 1, section.last, this._highestMeasuredFrameIndex) : section.last;\n var firstMetrics = this.__getFrameMetricsApprox(section.first, this.props);\n var lastMetrics = this.__getFrameMetricsApprox(last, this.props);\n var spacerSize = lastMetrics.offset + lastMetrics.length - firstMetrics.offset;\n cells.push( /*#__PURE__*/React.createElement(View, {\n key: \"$spacer-\" + section.first,\n style: {\n [spacerKey]: spacerSize\n }\n }));\n } else {\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, section.first, section.last, inversionStyle);\n }\n }\n if (!this._hasWarned.keys && _usedIndexForKey) {\n console.warn('VirtualizedList: missing keys for items, make sure to specify a key or id property on each ' + 'item or provide a custom keyExtractor.', _keylessItemComponentName);\n this._hasWarned.keys = true;\n }\n }\n\n // 3. Add cell for ListFooterComponent\n if (ListFooterComponent) {\n var _element3 = /*#__PURE__*/React.isValidElement(ListFooterComponent) ? ListFooterComponent :\n /*#__PURE__*/\n // $FlowFixMe[not-a-component]\n // $FlowFixMe[incompatible-type-arg]\n React.createElement(ListFooterComponent, null);\n cells.push( /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this._getFooterCellKey(),\n key: \"$footer\"\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: this._onLayoutFooter,\n style: [inversionStyle, this.props.ListFooterComponentStyle]\n },\n // $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors\n _element3)));\n }\n\n // 4. Render the ScrollView\n var scrollProps = _objectSpread(_objectSpread({}, this.props), {}, {\n onContentSizeChange: this._onContentSizeChange,\n onLayout: this._onLayout,\n onScroll: this._onScroll,\n onScrollBeginDrag: this._onScrollBeginDrag,\n onScrollEndDrag: this._onScrollEndDrag,\n onMomentumScrollBegin: this._onMomentumScrollBegin,\n onMomentumScrollEnd: this._onMomentumScrollEnd,\n scrollEventThrottle: scrollEventThrottleOrDefault(this.props.scrollEventThrottle),\n // TODO: Android support\n invertStickyHeaders: this.props.invertStickyHeaders !== undefined ? this.props.invertStickyHeaders : this.props.inverted,\n stickyHeaderIndices,\n style: inversionStyle ? [inversionStyle, this.props.style] : this.props.style\n });\n this._hasMore = this.state.cellsAroundViewport.last < itemCount - 1;\n var innerRet = /*#__PURE__*/React.createElement(VirtualizedListContextProvider, {\n value: {\n cellKey: null,\n getScrollMetrics: this._getScrollMetrics,\n horizontal: horizontalOrDefault(this.props.horizontal),\n getOutermostParentListRef: this._getOutermostParentListRef,\n registerAsNestedChild: this._registerAsNestedChild,\n unregisterAsNestedChild: this._unregisterAsNestedChild\n }\n }, /*#__PURE__*/React.cloneElement((this.props.renderScrollComponent || this._defaultRenderScrollComponent)(scrollProps), {\n ref: this._captureScrollRef\n }, cells));\n var ret = innerRet;\n /* https://github.com/necolas/react-native-web/issues/2239: Re-enable when ScrollView.Context.Consumer is available.\n if (__DEV__) {\n ret = (\n \n {scrollContext => {\n if (\n scrollContext != null &&\n !scrollContext.horizontal ===\n !horizontalOrDefault(this.props.horizontal) &&\n !this._hasWarned.nesting &&\n this.context == null &&\n this.props.scrollEnabled !== false\n ) {\n // TODO (T46547044): use React.warn once 16.9 is sync'd: https://github.com/facebook/react/pull/15170\n console.error(\n 'VirtualizedLists should never be nested inside plain ScrollViews with the same ' +\n 'orientation because it can break windowing and other functionality - use another ' +\n 'VirtualizedList-backed container instead.',\n );\n this._hasWarned.nesting = true;\n }\n return innerRet;\n }}\n \n );\n }*/\n if (this.props.debug) {\n return /*#__PURE__*/React.createElement(View, {\n style: styles.debug\n }, ret, this._renderDebugOverlay());\n } else {\n return ret;\n }\n }\n componentDidUpdate(prevProps) {\n var _this$props7 = this.props,\n data = _this$props7.data,\n extraData = _this$props7.extraData;\n if (data !== prevProps.data || extraData !== prevProps.extraData) {\n // clear the viewableIndices cache to also trigger\n // the onViewableItemsChanged callback with the new data\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.resetViewableIndices();\n });\n }\n // The `this._hiPriInProgress` is guaranteeing a hiPri cell update will only happen\n // once per fiber update. The `_scheduleCellsToRenderUpdate` will set it to true\n // if a hiPri update needs to perform. If `componentDidUpdate` is triggered with\n // `this._hiPriInProgress=true`, means it's triggered by the hiPri update. The\n // `_scheduleCellsToRenderUpdate` will check this condition and not perform\n // another hiPri update.\n var hiPriInProgress = this._hiPriInProgress;\n this._scheduleCellsToRenderUpdate();\n // Make sure setting `this._hiPriInProgress` back to false after `componentDidUpdate`\n // is triggered with `this._hiPriInProgress = true`\n if (hiPriInProgress) {\n this._hiPriInProgress = false;\n }\n }\n _computeBlankness() {\n this._fillRateHelper.computeBlankness(this.props, this.state.cellsAroundViewport, this._scrollMetrics);\n }\n\n /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's\n * LTI update could not be added via codemod */\n\n _onCellFocusCapture(cellKey) {\n this._lastFocusedCellKey = cellKey;\n this._updateCellsToRender();\n }\n _triggerRemeasureForChildListsInCell(cellKey) {\n this._nestedChildLists.forEachInCell(cellKey, childList => {\n childList.measureLayoutRelativeToContainingList();\n });\n }\n measureLayoutRelativeToContainingList() {\n // TODO (T35574538): findNodeHandle sometimes crashes with \"Unable to find\n // node on an unmounted component\" during scrolling\n try {\n if (!this._scrollRef) {\n return;\n }\n // We are assuming that getOutermostParentListRef().getScrollRef()\n // is a non-null reference to a ScrollView\n this._scrollRef.measureLayout(this.context.getOutermostParentListRef().getScrollRef(), (x, y, width, height) => {\n this._offsetFromParentVirtualizedList = this._selectOffset({\n x,\n y\n });\n this._scrollMetrics.contentLength = this._selectLength({\n width,\n height\n });\n var scrollMetrics = this._convertParentScrollMetrics(this.context.getScrollMetrics());\n var metricsChanged = this._scrollMetrics.visibleLength !== scrollMetrics.visibleLength || this._scrollMetrics.offset !== scrollMetrics.offset;\n if (metricsChanged) {\n this._scrollMetrics.visibleLength = scrollMetrics.visibleLength;\n this._scrollMetrics.offset = scrollMetrics.offset;\n\n // If metrics of the scrollView changed, then we triggered remeasure for child list\n // to ensure VirtualizedList has the right information.\n this._nestedChildLists.forEach(childList => {\n childList.measureLayoutRelativeToContainingList();\n });\n }\n }, error => {\n console.warn(\"VirtualizedList: Encountered an error while measuring a list's\" + ' offset from its containing VirtualizedList.');\n });\n } catch (error) {\n console.warn('measureLayoutRelativeToContainingList threw an error', error.stack);\n }\n }\n _getFooterCellKey() {\n return this._getCellKey() + '-footer';\n }\n // $FlowFixMe[missing-local-annot]\n _renderDebugOverlay() {\n var normalize = this._scrollMetrics.visibleLength / (this._scrollMetrics.contentLength || 1);\n var framesInLayout = [];\n var itemCount = this.props.getItemCount(this.props.data);\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = this.__getFrameMetricsApprox(ii, this.props);\n /* $FlowFixMe[prop-missing] (>=0.68.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.68 was deployed. To see the\n * error delete this comment and run Flow. */\n if (frame.inLayout) {\n framesInLayout.push(frame);\n }\n }\n var windowTop = this.__getFrameMetricsApprox(this.state.cellsAroundViewport.first, this.props).offset;\n var frameLast = this.__getFrameMetricsApprox(this.state.cellsAroundViewport.last, this.props);\n var windowLen = frameLast.offset + frameLast.length - windowTop;\n var visTop = this._scrollMetrics.offset;\n var visLen = this._scrollMetrics.visibleLength;\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlay]\n }, framesInLayout.map((f, ii) => /*#__PURE__*/React.createElement(View, {\n key: 'f' + ii,\n style: [styles.debugOverlayBase, styles.debugOverlayFrame, {\n top: f.offset * normalize,\n height: f.length * normalize\n }]\n })), /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlayFrameLast, {\n top: windowTop * normalize,\n height: windowLen * normalize\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlayFrameVis, {\n top: visTop * normalize,\n height: visLen * normalize\n }]\n }));\n }\n _selectLength(metrics) {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.height : metrics.width;\n }\n _selectOffset(metrics) {\n return !horizontalOrDefault(this.props.horizontal) ? metrics.y : metrics.x;\n }\n _maybeCallOnEdgeReached() {\n var _this$props8 = this.props,\n data = _this$props8.data,\n getItemCount = _this$props8.getItemCount,\n onStartReached = _this$props8.onStartReached,\n onStartReachedThreshold = _this$props8.onStartReachedThreshold,\n onEndReached = _this$props8.onEndReached,\n onEndReachedThreshold = _this$props8.onEndReachedThreshold,\n initialScrollIndex = _this$props8.initialScrollIndex;\n var _this$_scrollMetrics2 = this._scrollMetrics,\n contentLength = _this$_scrollMetrics2.contentLength,\n visibleLength = _this$_scrollMetrics2.visibleLength,\n offset = _this$_scrollMetrics2.offset;\n var distanceFromStart = offset;\n var distanceFromEnd = contentLength - visibleLength - offset;\n\n // Especially when oERT is zero it's necessary to 'floor' very small distance values to be 0\n // since debouncing causes us to not fire this event for every single \"pixel\" we scroll and can thus\n // be at the edge of the list with a distance approximating 0 but not quite there.\n if (distanceFromStart < ON_EDGE_REACHED_EPSILON) {\n distanceFromStart = 0;\n }\n if (distanceFromEnd < ON_EDGE_REACHED_EPSILON) {\n distanceFromEnd = 0;\n }\n\n // TODO: T121172172 Look into why we're \"defaulting\" to a threshold of 2px\n // when oERT is not present (different from 2 viewports used elsewhere)\n var DEFAULT_THRESHOLD_PX = 2;\n var startThreshold = onStartReachedThreshold != null ? onStartReachedThreshold * visibleLength : DEFAULT_THRESHOLD_PX;\n var endThreshold = onEndReachedThreshold != null ? onEndReachedThreshold * visibleLength : DEFAULT_THRESHOLD_PX;\n var isWithinStartThreshold = distanceFromStart <= startThreshold;\n var isWithinEndThreshold = distanceFromEnd <= endThreshold;\n\n // First check if the user just scrolled within the end threshold\n // and call onEndReached only once for a given content length,\n // and only if onStartReached is not being executed\n if (onEndReached && this.state.cellsAroundViewport.last === getItemCount(data) - 1 && isWithinEndThreshold && this._scrollMetrics.contentLength !== this._sentEndForContentLength) {\n this._sentEndForContentLength = this._scrollMetrics.contentLength;\n onEndReached({\n distanceFromEnd\n });\n }\n\n // Next check if the user just scrolled within the start threshold\n // and call onStartReached only once for a given content length,\n // and only if onEndReached is not being executed\n else if (onStartReached != null && this.state.cellsAroundViewport.first === 0 && isWithinStartThreshold && this._scrollMetrics.contentLength !== this._sentStartForContentLength) {\n // On initial mount when using initialScrollIndex the offset will be 0 initially\n // and will trigger an unexpected onStartReached. To avoid this we can use\n // timestamp to differentiate between the initial scroll metrics and when we actually\n // received the first scroll event.\n if (!initialScrollIndex || this._scrollMetrics.timestamp !== 0) {\n this._sentStartForContentLength = this._scrollMetrics.contentLength;\n onStartReached({\n distanceFromStart\n });\n }\n }\n\n // If the user scrolls away from the start or end and back again,\n // cause onStartReached or onEndReached to be triggered again\n else {\n this._sentStartForContentLength = isWithinStartThreshold ? this._sentStartForContentLength : 0;\n this._sentEndForContentLength = isWithinEndThreshold ? this._sentEndForContentLength : 0;\n }\n }\n _scheduleCellsToRenderUpdate() {\n var _this$state$cellsArou = this.state.cellsAroundViewport,\n first = _this$state$cellsArou.first,\n last = _this$state$cellsArou.last;\n var _this$_scrollMetrics3 = this._scrollMetrics,\n offset = _this$_scrollMetrics3.offset,\n visibleLength = _this$_scrollMetrics3.visibleLength,\n velocity = _this$_scrollMetrics3.velocity;\n var itemCount = this.props.getItemCount(this.props.data);\n var hiPri = false;\n var onStartReachedThreshold = onStartReachedThresholdOrDefault(this.props.onStartReachedThreshold);\n var onEndReachedThreshold = onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold);\n // Mark as high priority if we're close to the start of the first item\n // But only if there are items before the first rendered item\n if (first > 0) {\n var distTop = offset - this.__getFrameMetricsApprox(first, this.props).offset;\n hiPri = distTop < 0 || velocity < -2 && distTop < getScrollingThreshold(onStartReachedThreshold, visibleLength);\n }\n // Mark as high priority if we're close to the end of the last item\n // But only if there are items after the last rendered item\n if (!hiPri && last >= 0 && last < itemCount - 1) {\n var distBottom = this.__getFrameMetricsApprox(last, this.props).offset - (offset + visibleLength);\n hiPri = distBottom < 0 || velocity > 2 && distBottom < getScrollingThreshold(onEndReachedThreshold, visibleLength);\n }\n // Only trigger high-priority updates if we've actually rendered cells,\n // and with that size estimate, accurately compute how many cells we should render.\n // Otherwise, it would just render as many cells as it can (of zero dimension),\n // each time through attempting to render more (limited by maxToRenderPerBatch),\n // starving the renderer from actually laying out the objects and computing _averageCellLength.\n // If this is triggered in an `componentDidUpdate` followed by a hiPri cellToRenderUpdate\n // We shouldn't do another hipri cellToRenderUpdate\n if (hiPri && (this._averageCellLength || this.props.getItemLayout) && !this._hiPriInProgress) {\n this._hiPriInProgress = true;\n // Don't worry about interactions when scrolling quickly; focus on filling content as fast\n // as possible.\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n this._updateCellsToRender();\n return;\n } else {\n this._updateCellsToRenderBatcher.schedule();\n }\n }\n _updateViewableItems(props, cellsAroundViewport) {\n this._viewabilityTuples.forEach(tuple => {\n tuple.viewabilityHelper.onUpdate(props, this._scrollMetrics.offset, this._scrollMetrics.visibleLength, this._getFrameMetrics, this._createViewToken, tuple.onViewableItemsChanged, cellsAroundViewport);\n });\n }\n}\nVirtualizedList.contextType = VirtualizedListContext;\nvar styles = StyleSheet.create({\n verticallyInverted: {\n transform: 'scaleY(-1)'\n },\n horizontallyInverted: {\n transform: 'scaleX(-1)'\n },\n debug: {\n flex: 1\n },\n debugOverlayBase: {\n position: 'absolute',\n top: 0,\n right: 0\n },\n debugOverlay: {\n bottom: 0,\n width: 20,\n borderColor: 'blue',\n borderWidth: 1\n },\n debugOverlayFrame: {\n left: 0,\n backgroundColor: 'orange'\n },\n debugOverlayFrameLast: {\n left: 0,\n borderColor: 'green',\n borderWidth: 2\n },\n debugOverlayFrameVis: {\n left: 0,\n borderColor: 'red',\n borderWidth: 2\n }\n});\nexport default VirtualizedList;","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var cache = null;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {\n return cache.lastResult;\n }\n var lastResult = resultFn.apply(this, newArgs);\n cache = {\n lastResult: lastResult,\n lastArgs: newArgs,\n lastThis: this,\n };\n return lastResult;\n }\n memoized.clear = function clear() {\n cache = null;\n };\n return memoized;\n}\n\nexport { memoizeOne as default };\n","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nvar _excluded = [\"numColumns\", \"columnWrapperStyle\", \"removeClippedSubviews\", \"strictMode\"];\n/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n\nimport View from '../../../exports/View';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport deepDiffer from '../deepDiffer';\nimport Platform from '../../../exports/Platform';\nimport invariant from 'fbjs/lib/invariant';\nimport * as React from 'react';\nimport VirtualizedList from '../VirtualizedList';\nimport { keyExtractor as defaultKeyExtractor } from '../VirtualizeUtils';\nimport memoizeOne from 'memoize-one';\n/**\n * Default Props Helper Functions\n * Use the following helper functions for default values\n */\n\n// removeClippedSubviewsOrDefault(this.props.removeClippedSubviews)\nfunction removeClippedSubviewsOrDefault(removeClippedSubviews) {\n return removeClippedSubviews !== null && removeClippedSubviews !== void 0 ? removeClippedSubviews : Platform.OS === 'android';\n}\n\n// numColumnsOrDefault(this.props.numColumns)\nfunction numColumnsOrDefault(numColumns) {\n return numColumns !== null && numColumns !== void 0 ? numColumns : 1;\n}\nfunction isArrayLike(data) {\n // $FlowExpectedError[incompatible-use]\n return typeof Object(data).length === 'number';\n}\n/**\n * A performant interface for rendering simple, flat lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Optional horizontal mode.\n * - Configurable viewability callbacks.\n * - Header support.\n * - Footer support.\n * - Separator support.\n * - Pull to Refresh.\n * - Scroll loading.\n * - ScrollToIndex support.\n *\n * If you need section support, use [``](docs/sectionlist.html).\n *\n * Minimal Example:\n *\n * {item.key}}\n * />\n *\n * More complex, multi-select example demonstrating `PureComponent` usage for perf optimization and avoiding bugs.\n *\n * - By binding the `onPressItem` handler, the props will remain `===` and `PureComponent` will\n * prevent wasteful re-renders unless the actual `id`, `selected`, or `title` props change, even\n * if the components rendered in `MyListItem` did not have such optimizations.\n * - By passing `extraData={this.state}` to `FlatList` we make sure `FlatList` itself will re-render\n * when the `state.selected` changes. Without setting this prop, `FlatList` would not know it\n * needs to re-render any items because it is also a `PureComponent` and the prop comparison will\n * not show any changes.\n * - `keyExtractor` tells the list to use the `id`s for the react keys instead of the default `key` property.\n *\n *\n * class MyListItem extends React.PureComponent {\n * _onPress = () => {\n * this.props.onPressItem(this.props.id);\n * };\n *\n * render() {\n * const textColor = this.props.selected ? \"red\" : \"black\";\n * return (\n * \n * \n * \n * {this.props.title}\n * \n * \n * \n * );\n * }\n * }\n *\n * class MultiSelectList extends React.PureComponent {\n * state = {selected: (new Map(): Map)};\n *\n * _keyExtractor = (item, index) => item.id;\n *\n * _onPressItem = (id: string) => {\n * // updater functions are preferred for transactional updates\n * this.setState((state) => {\n * // copy the map rather than modifying state.\n * const selected = new Map(state.selected);\n * selected.set(id, !selected.get(id)); // toggle\n * return {selected};\n * });\n * };\n *\n * _renderItem = ({item}) => (\n * \n * );\n *\n * render() {\n * return (\n * \n * );\n * }\n * }\n *\n * This is a convenience wrapper around [``](docs/virtualizedlist.html),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n * Also inherits [ScrollView Props](docs/scrollview.html#props), unless it is nested in another FlatList of same orientation.\n */\nclass FlatList extends React.PureComponent {\n /**\n * Scrolls to the end of the content. May be janky without `getItemLayout` prop.\n */\n scrollToEnd(params) {\n if (this._listRef) {\n this._listRef.scrollToEnd(params);\n }\n }\n\n /**\n * Scrolls to the item at the specified index such that it is positioned in the viewable area\n * such that `viewPosition` 0 places it at the top, 1 at the bottom, and 0.5 centered in the\n * middle. `viewOffset` is a fixed number of pixels to offset the final target position.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToIndex(params) {\n if (this._listRef) {\n this._listRef.scrollToIndex(params);\n }\n }\n\n /**\n * Requires linear scan through data - use `scrollToIndex` instead if possible.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n scrollToItem(params) {\n if (this._listRef) {\n this._listRef.scrollToItem(params);\n }\n }\n\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Check out [scrollToOffset](docs/virtualizedlist.html#scrolltooffset) of VirtualizedList\n */\n scrollToOffset(params) {\n if (this._listRef) {\n this._listRef.scrollToOffset(params);\n }\n }\n\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n recordInteraction() {\n if (this._listRef) {\n this._listRef.recordInteraction();\n }\n }\n\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n flashScrollIndicators() {\n if (this._listRef) {\n this._listRef.flashScrollIndicators();\n }\n }\n\n /**\n * Provides a handle to the underlying scroll responder.\n */\n getScrollResponder() {\n if (this._listRef) {\n return this._listRef.getScrollResponder();\n }\n }\n\n /**\n * Provides a reference to the underlying host component\n */\n getNativeScrollRef() {\n if (this._listRef) {\n /* $FlowFixMe[incompatible-return] Suppresses errors found when fixing\n * TextInput typing */\n return this._listRef.getScrollRef();\n }\n }\n getScrollableNode() {\n if (this._listRef) {\n return this._listRef.getScrollableNode();\n }\n }\n constructor(_props) {\n super(_props);\n this._virtualizedListPairs = [];\n this._captureRef = ref => {\n this._listRef = ref;\n };\n this._getItem = (data, index) => {\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n if (numColumns > 1) {\n var ret = [];\n for (var kk = 0; kk < numColumns; kk++) {\n var itemIndex = index * numColumns + kk;\n if (itemIndex < data.length) {\n var _item = data[itemIndex];\n ret.push(_item);\n }\n }\n return ret;\n } else {\n return data[index];\n }\n };\n this._getItemCount = data => {\n // Legacy behavior of FlatList was to forward \"undefined\" length if invalid\n // data like a non-arraylike object is passed. VirtualizedList would then\n // coerce this, and the math would work out to no-op. For compatibility, if\n // invalid data is passed, we tell VirtualizedList there are zero items\n // available to prevent it from trying to read from the invalid data\n // (without propagating invalidly typed data).\n if (data != null && isArrayLike(data)) {\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;\n } else {\n return 0;\n }\n };\n this._keyExtractor = (items, index) => {\n var _this$props$keyExtrac;\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n var keyExtractor = (_this$props$keyExtrac = this.props.keyExtractor) !== null && _this$props$keyExtrac !== void 0 ? _this$props$keyExtrac : defaultKeyExtractor;\n if (numColumns > 1) {\n invariant(Array.isArray(items), 'FlatList: Encountered internal consistency error, expected each item to consist of an ' + 'array with 1-%s columns; instead, received a single item.', numColumns);\n return items.map((item, kk) => keyExtractor(item, index * numColumns + kk)).join(':');\n }\n\n // $FlowFixMe[incompatible-call] Can't call keyExtractor with an array\n return keyExtractor(items, index);\n };\n this._renderer = (ListItemComponent, renderItem, columnWrapperStyle, numColumns, extraData\n // $FlowFixMe[missing-local-annot]\n ) => {\n var cols = numColumnsOrDefault(numColumns);\n var render = props => {\n if (ListItemComponent) {\n // $FlowFixMe[not-a-component] Component isn't valid\n // $FlowFixMe[incompatible-type-arg] Component isn't valid\n // $FlowFixMe[incompatible-return] Component isn't valid\n return /*#__PURE__*/React.createElement(ListItemComponent, props);\n } else if (renderItem) {\n // $FlowFixMe[incompatible-call]\n return renderItem(props);\n } else {\n return null;\n }\n };\n var renderProp = info => {\n if (cols > 1) {\n var _item2 = info.item,\n _index = info.index;\n invariant(Array.isArray(_item2), 'Expected array of items with numColumns > 1');\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.row, columnWrapperStyle]\n }, _item2.map((it, kk) => {\n var element = render({\n // $FlowFixMe[incompatible-call]\n item: it,\n index: _index * cols + kk,\n separators: info.separators\n });\n return element != null ? /*#__PURE__*/React.createElement(React.Fragment, {\n key: kk\n }, element) : null;\n }));\n } else {\n return render(info);\n }\n };\n return ListItemComponent ? {\n ListItemComponent: renderProp\n } : {\n renderItem: renderProp\n };\n };\n this._memoizedRenderer = memoizeOne(this._renderer);\n this._checkProps(this.props);\n if (this.props.viewabilityConfigCallbackPairs) {\n this._virtualizedListPairs = this.props.viewabilityConfigCallbackPairs.map(pair => ({\n viewabilityConfig: pair.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(pair.onViewableItemsChanged)\n }));\n } else if (this.props.onViewableItemsChanged) {\n this._virtualizedListPairs.push({\n /* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This\n * comment suppresses an error found when Flow v0.63 was deployed. To\n * see the error delete this comment and run Flow. */\n viewabilityConfig: this.props.viewabilityConfig,\n onViewableItemsChanged: this._createOnViewableItemsChanged(this.props.onViewableItemsChanged)\n });\n }\n }\n\n // $FlowFixMe[missing-local-annot]\n componentDidUpdate(prevProps) {\n invariant(prevProps.numColumns === this.props.numColumns, 'Changing numColumns on the fly is not supported. Change the key prop on FlatList when ' + 'changing the number of columns to force a fresh render of the component.');\n invariant(prevProps.onViewableItemsChanged === this.props.onViewableItemsChanged, 'Changing onViewableItemsChanged on the fly is not supported');\n invariant(!deepDiffer(prevProps.viewabilityConfig, this.props.viewabilityConfig), 'Changing viewabilityConfig on the fly is not supported');\n invariant(prevProps.viewabilityConfigCallbackPairs === this.props.viewabilityConfigCallbackPairs, 'Changing viewabilityConfigCallbackPairs on the fly is not supported');\n this._checkProps(this.props);\n }\n // $FlowFixMe[missing-local-annot]\n _checkProps(props) {\n var getItem = props.getItem,\n getItemCount = props.getItemCount,\n horizontal = props.horizontal,\n columnWrapperStyle = props.columnWrapperStyle,\n onViewableItemsChanged = props.onViewableItemsChanged,\n viewabilityConfigCallbackPairs = props.viewabilityConfigCallbackPairs;\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n invariant(!getItem && !getItemCount, 'FlatList does not support custom data formats.');\n if (numColumns > 1) {\n invariant(!horizontal, 'numColumns does not support horizontal.');\n } else {\n invariant(!columnWrapperStyle, 'columnWrapperStyle not supported for single column lists');\n }\n invariant(!(onViewableItemsChanged && viewabilityConfigCallbackPairs), 'FlatList does not support setting both onViewableItemsChanged and ' + 'viewabilityConfigCallbackPairs.');\n }\n _pushMultiColumnViewable(arr, v) {\n var _this$props$keyExtrac2;\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n var keyExtractor = (_this$props$keyExtrac2 = this.props.keyExtractor) !== null && _this$props$keyExtrac2 !== void 0 ? _this$props$keyExtrac2 : defaultKeyExtractor;\n v.item.forEach((item, ii) => {\n invariant(v.index != null, 'Missing index!');\n var index = v.index * numColumns + ii;\n arr.push(_objectSpread(_objectSpread({}, v), {}, {\n item,\n key: keyExtractor(item, index),\n index\n }));\n });\n }\n _createOnViewableItemsChanged(onViewableItemsChanged\n // $FlowFixMe[missing-local-annot]\n ) {\n return info => {\n var numColumns = numColumnsOrDefault(this.props.numColumns);\n if (onViewableItemsChanged) {\n if (numColumns > 1) {\n var changed = [];\n var viewableItems = [];\n info.viewableItems.forEach(v => this._pushMultiColumnViewable(viewableItems, v));\n info.changed.forEach(v => this._pushMultiColumnViewable(changed, v));\n onViewableItemsChanged({\n viewableItems,\n changed\n });\n } else {\n onViewableItemsChanged(info);\n }\n }\n };\n }\n render() {\n var _this$props = this.props,\n numColumns = _this$props.numColumns,\n columnWrapperStyle = _this$props.columnWrapperStyle,\n _removeClippedSubviews = _this$props.removeClippedSubviews,\n _this$props$strictMod = _this$props.strictMode,\n strictMode = _this$props$strictMod === void 0 ? false : _this$props$strictMod,\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n var renderer = strictMode ? this._memoizedRenderer : this._renderer;\n return (\n /*#__PURE__*/\n // $FlowFixMe[incompatible-exact] - `restProps` (`Props`) is inexact.\n React.createElement(VirtualizedList, _extends({}, restProps, {\n getItem: this._getItem,\n getItemCount: this._getItemCount,\n keyExtractor: this._keyExtractor,\n ref: this._captureRef,\n viewabilityConfigCallbackPairs: this._virtualizedListPairs,\n removeClippedSubviews: removeClippedSubviewsOrDefault(_removeClippedSubviews)\n }, renderer(this.props.ListItemComponent, this.props.renderItem, columnWrapperStyle, numColumns, this.props.extraData)))\n );\n }\n}\nvar styles = StyleSheet.create({\n row: {\n flexDirection: 'row'\n }\n});\nexport default FlatList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport FlatList from '../../vendor/react-native/FlatList';\nexport default FlatList;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"hrefAttrs\", \"numberOfLines\", \"onClick\", \"onLayout\", \"onPress\", \"onMoveShouldSetResponder\", \"onMoveShouldSetResponderCapture\", \"onResponderEnd\", \"onResponderGrant\", \"onResponderMove\", \"onResponderReject\", \"onResponderRelease\", \"onResponderStart\", \"onResponderTerminate\", \"onResponderTerminationRequest\", \"onScrollShouldSetResponder\", \"onScrollShouldSetResponderCapture\", \"onSelectionChangeShouldSetResponder\", \"onSelectionChangeShouldSetResponderCapture\", \"onStartShouldSetResponder\", \"onStartShouldSetResponderCapture\", \"selectable\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and 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 */\n\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from './TextAncestorContext';\nimport { useLocaleContext, getLocaleDirection } from '../../modules/useLocale';\nimport { warnOnce } from '../../modules/warnOnce';\nvar forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {\n href: true,\n lang: true,\n pointerEvents: true\n});\nvar pickProps = props => pick(props, forwardPropsList);\nvar Text = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n var hrefAttrs = props.hrefAttrs,\n numberOfLines = props.numberOfLines,\n onClick = props.onClick,\n onLayout = props.onLayout,\n onPress = props.onPress,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n selectable = props.selectable,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n if (selectable != null) {\n warnOnce('selectable', 'selectable prop is deprecated. Use styles.userSelect.');\n }\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n var _useLocaleContext = useLocaleContext(),\n contextDirection = _useLocaleContext.direction;\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture\n });\n var handleClick = React.useCallback(e => {\n if (onClick != null) {\n onClick(e);\n } else if (onPress != null) {\n e.stopPropagation();\n onPress(e);\n }\n }, [onClick, onPress]);\n var component = hasTextAncestor ? 'span' : 'div';\n var langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n var componentDirection = props.dir || langDirection;\n var writingDirection = componentDirection || contextDirection;\n var supportedProps = pickProps(rest);\n supportedProps.dir = componentDirection;\n // 'auto' by default allows browsers to infer writing direction (root elements only)\n if (!hasTextAncestor) {\n supportedProps.dir = componentDirection != null ? componentDirection : 'auto';\n }\n if (onClick || onPress) {\n supportedProps.onClick = handleClick;\n }\n supportedProps.style = [numberOfLines != null && numberOfLines > 1 && {\n WebkitLineClamp: numberOfLines\n }, hasTextAncestor === true ? styles.textHasAncestor$raw : styles.text$raw, numberOfLines === 1 && styles.textOneLine, numberOfLines != null && numberOfLines > 1 && styles.textMultiLine, props.style, selectable === true && styles.selectable, selectable === false && styles.notSelectable, onPress && styles.pressable];\n if (props.href != null) {\n component = 'a';\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n if (download != null) {\n supportedProps.download = download;\n }\n if (rel != null) {\n supportedProps.rel = rel;\n }\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\n }\n }\n }\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n var element = createElement(component, supportedProps, {\n writingDirection\n });\n return hasTextAncestor ? element : /*#__PURE__*/React.createElement(TextAncestorContext.Provider, {\n value: true\n }, element);\n});\nText.displayName = 'Text';\nvar textStyle = {\n backgroundColor: 'transparent',\n border: '0 solid black',\n boxSizing: 'border-box',\n color: 'black',\n display: 'inline',\n font: '14px System',\n listStyle: 'none',\n margin: 0,\n padding: 0,\n position: 'relative',\n textAlign: 'start',\n textDecoration: 'none',\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word'\n};\nvar styles = StyleSheet.create({\n text$raw: textStyle,\n textHasAncestor$raw: _objectSpread(_objectSpread({}, textStyle), {}, {\n color: 'inherit',\n font: 'inherit',\n textAlign: 'inherit',\n whiteSpace: 'inherit'\n }),\n textOneLine: {\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n },\n // See #13\n textMultiLine: {\n display: '-webkit-box',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n WebkitBoxOrient: 'vertical'\n },\n notSelectable: {\n userSelect: 'none'\n },\n selectable: {\n userSelect: 'text'\n },\n pressable: {\n cursor: 'pointer'\n }\n});\nexport default Text;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n\n'use strict';\n\nvar DELAY = 'DELAY';\nvar ERROR = 'ERROR';\nvar LONG_PRESS_DETECTED = 'LONG_PRESS_DETECTED';\nvar NOT_RESPONDER = 'NOT_RESPONDER';\nvar RESPONDER_ACTIVE_LONG_PRESS_START = 'RESPONDER_ACTIVE_LONG_PRESS_START';\nvar RESPONDER_ACTIVE_PRESS_START = 'RESPONDER_ACTIVE_PRESS_START';\nvar RESPONDER_INACTIVE_PRESS_START = 'RESPONDER_INACTIVE_PRESS_START';\nvar RESPONDER_GRANT = 'RESPONDER_GRANT';\nvar RESPONDER_RELEASE = 'RESPONDER_RELEASE';\nvar RESPONDER_TERMINATED = 'RESPONDER_TERMINATED';\nvar Transitions = Object.freeze({\n NOT_RESPONDER: {\n DELAY: ERROR,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: ERROR,\n RESPONDER_TERMINATED: ERROR,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_INACTIVE_PRESS_START: {\n DELAY: RESPONDER_ACTIVE_PRESS_START,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_ACTIVE_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n RESPONDER_ACTIVE_LONG_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n ERROR: {\n DELAY: NOT_RESPONDER,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: NOT_RESPONDER\n }\n});\nvar getElementRole = element => element.getAttribute('role');\nvar getElementType = element => element.tagName.toLowerCase();\nvar isActiveSignal = signal => signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\nvar isButtonRole = element => getElementRole(element) === 'button';\nvar isPressStartSignal = signal => signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\nvar isTerminalSignal = signal => signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;\nvar isValidKeyPress = event => {\n var key = event.key,\n target = event.target;\n var isSpacebar = key === ' ' || key === 'Spacebar';\n var isButtonish = getElementType(target) === 'button' || isButtonRole(target);\n return key === 'Enter' || isSpacebar && isButtonish;\n};\nvar DEFAULT_LONG_PRESS_DELAY_MS = 450; // 500 - 50\nvar DEFAULT_PRESS_DELAY_MS = 50;\n\n/**\n * =========================== PressResponder Tutorial ===========================\n *\n * The `PressResponder` class helps you create press interactions by analyzing the\n * geometry of elements and observing when another responder (e.g. ScrollView)\n * has stolen the touch lock. It offers hooks for your component to provide\n * interaction feedback to the user:\n *\n * - When a press has activated (e.g. highlight an element)\n * - When a press has deactivated (e.g. un-highlight an element)\n * - When a press sould trigger an action, meaning it activated and deactivated\n * while within the geometry of the element without the lock being stolen.\n *\n * A high quality interaction isn't as simple as you might think. There should\n * be a slight delay before activation. Moving your finger beyond an element's\n * bounds should trigger deactivation, but moving the same finger back within an\n * element's bounds should trigger reactivation.\n *\n * In order to use `PressResponder`, do the following:\n *\n * const pressResponder = new PressResponder(config);\n *\n * 2. Choose the rendered component who should collect the press events. On that\n * element, spread `pressability.getEventHandlers()` into its props.\n *\n * return (\n * \n * );\n *\n * 3. Reset `PressResponder` when your component unmounts.\n *\n * componentWillUnmount() {\n * this.state.pressResponder.reset();\n * }\n *\n * ==================== Implementation Details ====================\n *\n * `PressResponder` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * # Geometry\n *\n * ┌────────────────────────┐\n * │ ┌──────────────────┐ │ - Presses start anywhere within `HitRect`.\n * │ │ ┌────────────┐ │ │\n * │ │ │ VisualRect │ │ │\n * │ │ └────────────┘ │ │ - When pressed down for sufficient amount of time\n * │ │ HitRect │ │ before letting up, `VisualRect` activates.\n * │ └──────────────────┘ │\n * │ Out Region o │\n * └────────────────────│───┘\n * └────── When the press is released outside the `HitRect`,\n * the responder is NOT eligible for a \"press\".\n *\n * # State Machine\n *\n * ┌───────────────┐ ◀──── RESPONDER_RELEASE\n * │ NOT_RESPONDER │\n * └───┬───────────┘ ◀──── RESPONDER_TERMINATED\n * │\n * │ RESPONDER_GRANT (HitRect)\n * │\n * ▼\n * ┌─────────────────────┐ ┌───────────────────┐ ┌───────────────────┐\n * │ RESPONDER_INACTIVE_ │ DELAY │ RESPONDER_ACTIVE_ │ T + DELAY │ RESPONDER_ACTIVE_ │\n * │ PRESS_START ├────────▶ │ PRESS_START ├────────────▶ │ LONG_PRESS_START │\n * └─────────────────────┘ └───────────────────┘ └───────────────────┘\n *\n * T + DELAY => LONG_PRESS_DELAY + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the invocation of `onLongPress`. Only when the browser produces a\n * `click` event is `onPress` invoked.\n */\nexport default class PressResponder {\n constructor(config) {\n this._eventHandlers = null;\n this._isPointerTouch = false;\n this._longPressDelayTimeout = null;\n this._longPressDispatched = false;\n this._pressDelayTimeout = null;\n this._pressOutDelayTimeout = null;\n this._touchState = NOT_RESPONDER;\n this.configure(config);\n }\n configure(config) {\n this._config = config;\n }\n\n /**\n * Resets any pending timers. This should be called on unmount.\n */\n reset() {\n this._cancelLongPressDelayTimeout();\n this._cancelPressDelayTimeout();\n this._cancelPressOutDelayTimeout();\n }\n\n /**\n * Returns a set of props to spread into the interactive element.\n */\n getEventHandlers() {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n return this._eventHandlers;\n }\n _createEventHandlers() {\n var start = (event, shouldDelay) => {\n event.persist();\n this._cancelPressOutDelayTimeout();\n this._longPressDispatched = false;\n this._selectionTerminated = false;\n this._touchState = NOT_RESPONDER;\n this._isPointerTouch = event.nativeEvent.type === 'touchstart';\n this._receiveSignal(RESPONDER_GRANT, event);\n var delayPressStart = normalizeDelay(this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);\n if (shouldDelay !== false && delayPressStart > 0) {\n this._pressDelayTimeout = setTimeout(() => {\n this._receiveSignal(DELAY, event);\n }, delayPressStart);\n } else {\n this._receiveSignal(DELAY, event);\n }\n var delayLongPress = normalizeDelay(this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);\n this._longPressDelayTimeout = setTimeout(() => {\n this._handleLongPress(event);\n }, delayLongPress + delayPressStart);\n };\n var end = event => {\n this._receiveSignal(RESPONDER_RELEASE, event);\n };\n var keyupHandler = event => {\n var onPress = this._config.onPress;\n var target = event.target;\n if (this._touchState !== NOT_RESPONDER && isValidKeyPress(event)) {\n end(event);\n document.removeEventListener('keyup', keyupHandler);\n var role = target.getAttribute('role');\n var elementType = getElementType(target);\n var isNativeInteractiveElement = role === 'link' || elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea';\n if (onPress != null && !isNativeInteractiveElement) {\n onPress(event);\n }\n }\n };\n return {\n onStartShouldSetResponder: event => {\n var disabled = this._config.disabled;\n if (disabled && isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n if (disabled == null) {\n return true;\n }\n return !disabled;\n },\n onKeyDown: event => {\n var disabled = this._config.disabled;\n var key = event.key,\n target = event.target;\n if (!disabled && isValidKeyPress(event)) {\n if (this._touchState === NOT_RESPONDER) {\n start(event, false);\n // Listen to 'keyup' on document to account for situations where\n // focus is moved to another element during 'keydown'.\n document.addEventListener('keyup', keyupHandler);\n }\n var isSpacebarKey = key === ' ' || key === 'Spacebar';\n var role = getElementRole(target);\n var isButtonLikeRole = role === 'button' || role === 'menuitem';\n if (isSpacebarKey && isButtonLikeRole && getElementType(target) !== 'button') {\n // Prevent spacebar scrolling the window if using non-native button\n event.preventDefault();\n }\n event.stopPropagation();\n }\n },\n onResponderGrant: event => start(event),\n onResponderMove: event => {\n if (this._config.onPressMove != null) {\n this._config.onPressMove(event);\n }\n var touch = getTouchFromResponderEvent(event);\n if (this._touchActivatePosition != null) {\n var deltaX = this._touchActivatePosition.pageX - touch.pageX;\n var deltaY = this._touchActivatePosition.pageY - touch.pageY;\n if (Math.hypot(deltaX, deltaY) > 10) {\n this._cancelLongPressDelayTimeout();\n }\n }\n },\n onResponderRelease: event => end(event),\n onResponderTerminate: event => {\n if (event.nativeEvent.type === 'selectionchange') {\n this._selectionTerminated = true;\n }\n this._receiveSignal(RESPONDER_TERMINATED, event);\n },\n onResponderTerminationRequest: event => {\n var _this$_config = this._config,\n cancelable = _this$_config.cancelable,\n disabled = _this$_config.disabled,\n onLongPress = _this$_config.onLongPress;\n // If `onLongPress` is provided, don't terminate on `contextmenu` as default\n // behavior will be prevented for non-mouse pointers.\n if (!disabled && onLongPress != null && this._isPointerTouch && event.nativeEvent.type === 'contextmenu') {\n return false;\n }\n if (cancelable == null) {\n return true;\n }\n return cancelable;\n },\n // NOTE: this diverges from react-native in 3 significant ways:\n // * The `onPress` callback is not connected to the responder system (the native\n // `click` event must be used but is dispatched in many scenarios where no pointers\n // are on the screen.) Therefore, it's possible for `onPress` to be called without\n // `onPress{Start,End}` being called first.\n // * The `onPress` callback is only be called on the first ancestor of the native\n // `click` target that is using the PressResponder.\n // * The event's `nativeEvent` is a `MouseEvent` not a `TouchEvent`.\n onClick: event => {\n var _this$_config2 = this._config,\n disabled = _this$_config2.disabled,\n onPress = _this$_config2.onPress;\n if (!disabled) {\n // If long press dispatched, cancel default click behavior.\n // If the responder terminated because text was selected during the gesture,\n // cancel the default click behavior.\n event.stopPropagation();\n if (this._longPressDispatched || this._selectionTerminated) {\n event.preventDefault();\n } else if (onPress != null && event.altKey === false) {\n onPress(event);\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n },\n // If `onLongPress` is provided and a touch pointer is being used, prevent the\n // default context menu from opening.\n onContextMenu: event => {\n var _this$_config3 = this._config,\n disabled = _this$_config3.disabled,\n onLongPress = _this$_config3.onLongPress;\n if (!disabled) {\n if (onLongPress != null && this._isPointerTouch && !event.defaultPrevented) {\n event.preventDefault();\n event.stopPropagation();\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n }\n };\n }\n\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n */\n _receiveSignal(signal, event) {\n var prevState = this._touchState;\n var nextState = null;\n if (Transitions[prevState] != null) {\n nextState = Transitions[prevState][signal];\n }\n if (this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) {\n return;\n }\n if (nextState == null || nextState === ERROR) {\n console.error(\"PressResponder: Invalid signal \" + signal + \" for state \" + prevState + \" on responder\");\n } else if (prevState !== nextState) {\n this._performTransitionSideEffects(prevState, nextState, signal, event);\n this._touchState = nextState;\n }\n }\n\n /**\n * Performs a transition between touchable states and identify any activations\n * or deactivations (and callback invocations).\n */\n _performTransitionSideEffects(prevState, nextState, signal, event) {\n if (isTerminalSignal(signal)) {\n // Pressable suppression of contextmenu on windows.\n // On Windows, the contextmenu is displayed after pointerup.\n // https://github.com/necolas/react-native-web/issues/2296\n setTimeout(() => {\n this._isPointerTouch = false;\n }, 0);\n this._touchActivatePosition = null;\n this._cancelLongPressDelayTimeout();\n }\n if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {\n var onLongPress = this._config.onLongPress;\n // Long press is not supported for keyboards because 'click' can be dispatched\n // immediately (and multiple times) after 'keydown'.\n if (onLongPress != null && event.nativeEvent.key == null) {\n onLongPress(event);\n this._longPressDispatched = true;\n }\n }\n var isPrevActive = isActiveSignal(prevState);\n var isNextActive = isActiveSignal(nextState);\n if (!isPrevActive && isNextActive) {\n this._activate(event);\n } else if (isPrevActive && !isNextActive) {\n this._deactivate(event);\n }\n if (isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {\n var _this$_config4 = this._config,\n _onLongPress = _this$_config4.onLongPress,\n onPress = _this$_config4.onPress;\n if (onPress != null) {\n var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;\n if (!isPressCanceledByLongPress) {\n // If we never activated (due to delays), activate and deactivate now.\n if (!isNextActive && !isPrevActive) {\n this._activate(event);\n this._deactivate(event);\n }\n }\n }\n }\n this._cancelPressDelayTimeout();\n }\n _activate(event) {\n var _this$_config5 = this._config,\n onPressChange = _this$_config5.onPressChange,\n onPressStart = _this$_config5.onPressStart;\n var touch = getTouchFromResponderEvent(event);\n this._touchActivatePosition = {\n pageX: touch.pageX,\n pageY: touch.pageY\n };\n if (onPressStart != null) {\n onPressStart(event);\n }\n if (onPressChange != null) {\n onPressChange(true);\n }\n }\n _deactivate(event) {\n var _this$_config6 = this._config,\n onPressChange = _this$_config6.onPressChange,\n onPressEnd = _this$_config6.onPressEnd;\n function end() {\n if (onPressEnd != null) {\n onPressEnd(event);\n }\n if (onPressChange != null) {\n onPressChange(false);\n }\n }\n var delayPressEnd = normalizeDelay(this._config.delayPressEnd);\n if (delayPressEnd > 0) {\n this._pressOutDelayTimeout = setTimeout(() => {\n end();\n }, delayPressEnd);\n } else {\n end();\n }\n }\n _handleLongPress(event) {\n if (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) {\n this._receiveSignal(LONG_PRESS_DETECTED, event);\n }\n }\n _cancelLongPressDelayTimeout() {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n }\n _cancelPressDelayTimeout() {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n }\n _cancelPressOutDelayTimeout() {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n }\n}\nfunction normalizeDelay(delay, min, fallback) {\n if (min === void 0) {\n min = 0;\n }\n if (fallback === void 0) {\n fallback = 0;\n }\n return Math.max(min, delay !== null && delay !== void 0 ? delay : fallback);\n}\nfunction getTouchFromResponderEvent(event) {\n var _event$nativeEvent = event.nativeEvent,\n changedTouches = _event$nativeEvent.changedTouches,\n touches = _event$nativeEvent.touches;\n if (touches != null && touches.length > 0) {\n return touches[0];\n }\n if (changedTouches != null && changedTouches.length > 0) {\n return changedTouches[0];\n }\n return event.nativeEvent;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n\n'use strict';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"activeOpacity\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"rejectResponderTermination\", \"style\"];\nimport * as React from 'react';\nimport { useCallback, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport { warnOnce } from '../../modules/warnOnce';\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, dimming it.\n */\nfunction TouchableOpacity(props, forwardedRef) {\n warnOnce('TouchableOpacity', 'TouchableOpacity is deprecated. Please use Pressable.');\n var activeOpacity = props.activeOpacity,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n rejectResponderTermination = props.rejectResponderTermination,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n var _useState = useState('0s'),\n duration = _useState[0],\n setDuration = _useState[1];\n var _useState2 = useState(null),\n opacityOverride = _useState2[0],\n setOpacityOverride = _useState2[1];\n var setOpacityTo = useCallback((value, duration) => {\n setOpacityOverride(value);\n setDuration(duration ? duration / 1000 + \"s\" : '0s');\n }, [setOpacityOverride, setDuration]);\n var setOpacityActive = useCallback(duration => {\n setOpacityTo(activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.2, duration);\n }, [activeOpacity, setOpacityTo]);\n var setOpacityInactive = useCallback(duration => {\n setOpacityTo(null, duration);\n }, [setOpacityTo]);\n var pressConfig = useMemo(() => ({\n cancelable: !rejectResponderTermination,\n disabled,\n delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress,\n onPress,\n onPressStart(event) {\n var isGrant = event.dispatchConfig != null ? event.dispatchConfig.registrationName === 'onResponderGrant' : event.type === 'keydown';\n setOpacityActive(isGrant ? 0 : 150);\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressEnd(event) {\n setOpacityInactive(250);\n if (onPressOut != null) {\n onPressOut(event);\n }\n }\n }), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, setOpacityActive, setOpacityInactive]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n pointerEvents: disabled ? 'box-none' : undefined,\n ref: setRef,\n style: [styles.root, !disabled && styles.actionable, style, opacityOverride != null && {\n opacity: opacityOverride\n }, {\n transitionDuration: duration\n }]\n }));\n}\nvar styles = StyleSheet.create({\n root: {\n transitionProperty: 'opacity',\n transitionDuration: '0.15s',\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableOpacity = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableOpacity));\nMemoedTouchableOpacity.displayName = 'TouchableOpacity';\nexport default MemoedTouchableOpacity;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n */\n\n'use strict';\n\nimport PressResponder from './PressResponder';\nimport { useDebugValue, useEffect, useRef } from 'react';\nexport default function usePressEvents(hostRef, config) {\n var pressResponderRef = useRef(null);\n if (pressResponderRef.current == null) {\n pressResponderRef.current = new PressResponder(config);\n }\n var pressResponder = pressResponderRef.current;\n\n // Re-configure to use the current node and configuration.\n useEffect(() => {\n pressResponder.configure(config);\n }, [config, pressResponder]);\n\n // Reset the `pressResponder` when cleanup needs to occur. This is\n // a separate effect because we do not want to rest the responder when `config` changes.\n useEffect(() => {\n return () => {\n pressResponder.reset();\n };\n }, [pressResponder]);\n useDebugValue(config);\n return pressResponder.getEventHandlers();\n}","import React, { useState, useEffect } from \"react\";\r\nimport { TouchableOpacity } from 'react-native';\r\n\r\nfunction HiddenButton(props){\r\n\r\n const [counter, setCounter] = useState(0);\r\n const [actioned, setActioned] = useState(false);\r\n\r\n useEffect(() => {\r\n if (counter >= props.pushCount && !actioned){\r\n props.onAction();\r\n setActioned(true);\r\n }\r\n },[counter])\r\n\r\n return (\r\n setCounter(counter + 1)}\r\n />\r\n )\r\n}\r\n\r\nexport default HiddenButton;","import React, { useState, useEffect } from \"react\";\r\nimport { ActivityIndicator, View, FlatList, useWindowDimensions, Image, Text } from 'react-native';\r\nimport Lottie from \"react-lottie\";\r\nimport PepePoop from \"./17081-pepe-poo-poo.json\";\r\nimport HiddenButton from \"./HiddenButton\";\r\n\r\nfunction PictureFeed(){\r\n\r\n const _maxImageWidth = 900;\r\n const _continuationTokenLocalStorageKey = \"ContinuationToken\";\r\n const _newFeedPathname = \"/new\";\r\n\r\n const windowDimensions = useWindowDimensions();\r\n const [pictures, setPictures] = useState([{ Id: 'header' }]);\r\n const [fetchingPictures, setFetchingPictures] = useState(false);\r\n const [continuationToken, setContinuationToken] = useState(null);\r\n const [pictureWidth, setPictureWidth] = useState(windowDimensions.width);\r\n const [windowHeight, setWindowHeight] = useState(windowDimensions.height);\r\n const [windowWidth, setWindowWidth] = useState(windowDimensions.width);\r\n\r\n //fetch first page on launch\r\n useEffect(() => {\r\n\r\n //try and get a continuation token from local storage\r\n let ct = null;\r\n\r\n if (window.location.pathname === _newFeedPathname)\r\n {\r\n updateContinuationToken(null)\r\n } \r\n else {\r\n try {\r\n\r\n ct = localStorage.getItem(_continuationTokenLocalStorageKey);\r\n } catch(e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n fetchPictures(ct);\r\n }, []);\r\n\r\n //update picture dimensions on window resize\r\n useEffect(() => {\r\n setPictureWidth(windowDimensions.width > _maxImageWidth ? _maxImageWidth : windowDimensions.width);\r\n setWindowHeight(windowDimensions.height);\r\n setWindowWidth(windowDimensions.width);\r\n }, [windowDimensions.width, windowDimensions.height]);\r\n\r\n //preload image urls \r\n const preloadPictures = (urls) => {\r\n let tasks = [];\r\n\r\n urls.forEach(i => {\r\n if (i) {\r\n tasks.push(Image.prefetch(i));\r\n }\r\n });\r\n\r\n Promise\r\n .all(tasks)\r\n .catch((i) => {\r\n console.log(i);\r\n });\r\n }\r\n\r\n //set continuation token locally and in browser storage\r\n const updateContinuationToken = (ct) => {\r\n \r\n setContinuationToken(ct);\r\n\r\n try {\r\n localStorage.setItem(_continuationTokenLocalStorageKey, ct);\r\n } catch(e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n //fetch the next set of pictures using a token\r\n const fetchPictures = async (ct) => {\r\n\r\n setFetchingPictures(true);\r\n\r\n const pictureResponse = await fetch(`${process.env.REACT_APP_API_HOST_ORIGIN}/api/GetPictures?token=${ct}&new=${window.location.pathname === _newFeedPathname}`)\r\n .then((res) => res.json())\r\n .catch((e) => console.log(e));\r\n\r\n setPictures([...pictures, ...(pictureResponse?.Pictures ?? [])]);\r\n\r\n updateContinuationToken(pictureResponse?.ContinuationToken ?? null);\r\n\r\n setFetchingPictures(false);\r\n\r\n preloadPictures(pictureResponse?.Pictures.map(i => i.Url) ?? []);\r\n };\r\n\r\n return(\r\n \r\n {\r\n continuationToken === null || pictures.length <= 1\r\n ?\r\n \r\n \r\n \r\n :\r\n <>\r\n i.Id}\r\n onEndReached={() => {\r\n if (!fetchingPictures) {\r\n fetchPictures(continuationToken);\r\n }\r\n }}\r\n showsVerticalScrollIndicator={false}\r\n showsHorizontalScrollIndicator={false}\r\n onEndReachedThreshold={20}\r\n renderItem={(i) => {\r\n if (i.item.Id === 'header'){\r\n return (\r\n \r\n \r\n Picture\r\n Poofect\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n return (\r\n \r\n \r\n {\r\n async function reportPicture() {\r\n await fetch(`${process.env.REACT_APP_API_HOST_ORIGIN}/api/RegisterComplaint?picture=${i.item.Id}&token=${continuationToken}`)\r\n .catch((e) => console.log(e));\r\n };\r\n reportPicture();\r\n }}\r\n />\r\n \r\n )\r\n }}\r\n /> \r\n \r\n }\r\n {\r\n updateContinuationToken(null);\r\n window.location.reload();\r\n }}\r\n />\r\n \r\n )\r\n}\r\n\r\nexport default PictureFeed;","/**\n * Copyright (c) Meta Platforms, Inc. and 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 * @format\n * \n */\n\n'use strict';\n\nimport Dimensions from '../Dimensions';\nimport { useEffect, useState } from 'react';\nexport default function useWindowDimensions() {\n var _useState = useState(() => Dimensions.get('window')),\n dims = _useState[0],\n setDims = _useState[1];\n useEffect(() => {\n function handleChange(_ref) {\n var window = _ref.window;\n if (window != null) {\n setDims(window);\n }\n }\n Dimensions.addEventListener('change', handleChange);\n // We might have missed an update between calling `get` in render and\n // `addEventListener` in this handler, so we set it here. If there was\n // no change, React will filter out this update as a no-op.\n setDims(Dimensions.get('window'));\n return () => {\n Dimensions.removeEventListener('change', handleChange);\n };\n }, []);\n return dims;\n}","import React from \"react\";\nimport { View } from 'react-native';\nimport PictureFeed from './PictureFeed';\n\nfunction App() {\n return (\n \n \n \n );\n}\n\nexport default App;","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.css';\nimport App from './App';\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n \n \n \n);"],"names":["hue2rgb","p","q","t","hslToRgb","h","s","l","r","g","b","Math","round","NUMBER","PERCENTAGE","call","_len","arguments","length","args","Array","_key","join","callWithSlashSeparator","_len2","_key2","slice","commaSeparatedCall","_len3","_key3","cachedMatchers","parse255","str","int","parseInt","parse360","parseFloat","parse1","num","parsePercentage","module","exports","color","matchers","undefined","rgb","RegExp","rgba","hsl","hsla","hwb","hex3","hex4","hex6","hex8","getMatchers","match","exec","colorFromKeyword","name","normalizeKeyword","w","gray","red","green","blue","hwbToRgb","require","__esModule","instance","Constructor","TypeError","obj","_defineProperty","_defineProperty2","default","defineProperties","target","props","i","descriptor","enumerable","configurable","writable","key","protoProps","staticProps","prototype","_assign","_assign2","source","Object","hasOwnProperty","_setPrototypeOf2","_interopRequireDefault","_create2","_typeof3","subClass","superClass","constructor","value","__proto__","_typeof2","self","ReferenceError","_iterator2","_symbol2","_typeof","$Object","P","D","create","it","desc","defineProperty","isObject","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","O","index","toString","core","version","__e","aFunction","fn","that","a","c","apply","get","document","is","createElement","split","getKeys","gOPS","pIE","result","getSymbols","f","symbols","isEnum","push","global","ctx","hide","has","PROTOTYPE","$export","type","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","B","IS_WRAP","W","expProto","C","this","Function","virtual","R","U","e","window","__g","dP","createDesc","object","documentElement","cof","propertyIsEnumerable","isArray","arg","setToStringTag","IteratorPrototype","NAME","next","LIBRARY","redefine","Iterators","$iterCreate","getPrototypeOf","ITERATOR","BUGGY","keys","KEYS","VALUES","returnThis","Base","DEFAULT","IS_SET","FORCED","methods","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","values","done","META","setDesc","id","isExtensible","FREEZE","preventExtensions","setMeta","meta","KEY","NEED","fastKey","getWeak","onFreeze","DESCRIPTORS","toObject","IObject","$assign","assign","A","Symbol","K","forEach","k","T","aLen","concat","j","anObject","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","style","display","src","contentWindow","open","write","lt","close","Properties","IE8_DOM_DEFINE","toPrimitive","Attributes","gOPD","getOwnPropertyDescriptor","gOPN","windowNames","getOwnPropertyNames","getWindowNames","$keys","hiddenKeys","getOwnPropertySymbols","ObjectProto","arrayIndexOf","names","fails","exp","bitmap","check","set","setPrototypeOf","test","buggy","def","tag","stat","shared","uid","SHARED","store","mode","copyright","toInteger","defined","TO_STRING","pos","String","charCodeAt","charAt","max","min","ceil","floor","isNaN","val","valueOf","px","random","wksExt","$Symbol","USE_SYMBOL","addToUnscopables","step","iterated","_t","_i","_k","Arguments","$getPrototypeOf","$at","point","$fails","wks","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","$JSON","JSON","_stringify","stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","sym","isSymbol","iterator","$defineProperty","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","replacer","$replacer","TO_STRING_TAG","DOMIterables","Collection","_toConsumableArray","arr","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","o","minLen","n","_unsupportedIterableToArray","_nonIterableSpread","len","arr2","filterUniqueArray","filter","lastIndexOf","assignStyle","base","property","baseValue","DASH","MS","cache","toUpper","toUpperCase","camelCaseProperty","camelProp","replace","hyphenateProperty","hyphenateStyleName","cssifyDeclaration","cssifyObject","css","RE","isPrefixedProperty","isPrefixedValue","unitlessProperties","borderImageOutset","borderImageSlice","borderImageWidth","fontWeight","lineHeight","opacity","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","prefixedUnitlessProperties","prefixes","getPrefixedProperty","prefix","jLen","_property","isUnitlessProperty","unprefixProperty","propertyWithoutPrefix","toLowerCase","normalizeProperty","resolveArrayValue","unprefixValue","_hyphenateStyleName2","_hyphenateStyleName","makeEmptyFunction","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","validateFormat","format","condition","error","Error","argIndex","framesToPop","warning","uppercasePattern","msPattern","toHyphenLower","hName","_ref","prefixMap","plugins","_isObject2","combinedValue","processedValue","_prefixValue2","_addNewValuesOnly2","_processedValue","_prefixProperty2","_cssInJsUtils","indexOf","map","CROSS_FADE_REGEX","grab","grabbing","FILTER_REGEX","_isPrefixedValue2","_isPrefixedValue","alternativeProps","alternativePropList","marginBlockStart","marginBlockEnd","marginInlineStart","marginInlineEnd","paddingBlockStart","paddingBlockEnd","paddingInlineStart","paddingInlineEnd","borderBlockStart","borderBlockStartColor","borderBlockStartStyle","borderBlockStartWidth","borderBlockEnd","borderBlockEndColor","borderBlockEndStyle","borderBlockEndWidth","borderInlineStart","borderInlineStartColor","borderInlineStartStyle","borderInlineStartWidth","borderInlineEnd","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","properties","maxHeight","maxWidth","width","height","columnWidth","minWidth","minHeight","propertyPrefixMap","outputValue","multipleValues","singleValue","dashCaseProperty","_hyphenateProperty2","pLen","unshift","prefixMapping","prefixValue","webkitOutput","mozOutput","_capitalizeString2","transition","transitionProperty","WebkitTransition","WebkitTransitionProperty","MozTransition","MozTransitionProperty","Webkit","Moz","ms","addIfNew","list","prefixProperties","requiredPrefixes","capitalizedProperty","prefixedProperty","_capitalizeString","metaData","factory","navigator","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","destination","sourcePrototype","attr","getDescriptor","prop","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","pause","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","userAgent","_shouldRoundValues","bmPow","pow","bmSqrt","sqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","abs","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","styleDiv","element","position","top","left","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","v","RGBtoHSV","d","addSaturationToRGB","offset","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","path","data","_workerSelf","setupWorker","Worker","Blob","blob","url","URL","createObjectURL","createWorker","completeLayers","layers","comps","layerData","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","comp","findComp","__used","parse","ks","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","animationData","assets","checkChars","chars","charData","ip","op","st","sr","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","response","responseText","load","fullPath","callback","errorCallback","XMLHttpRequest","err","onreadystatechange","readyState","status","send","completeData","payload","animation","event","process","onComplete","onError","createProcess","loadAnimation","processId","location","origin","pathname","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","u","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","bind","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","destroy","getAsset","createImgData","crossOrigin","addEventListener","createImageData","setAttributeNS","_elementHelper","append","appendChild","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","_cbs","callbacks","removeEventListener","splice","markerParser","parsePayloadLines","line","lines","keysCount","trim","_markers","markers","_marker","markerData","time","tm","duration","dr","cm","_","__","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","getRegisteredRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","autoplay","loop","renderer","animationID","timeCompleted","segmentPos","isSubframeEnabled","segments","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","params","wrapper","container","animType","RendererClass","rendererSettings","globalData","defs","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","substr","fileName","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","shift","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","setTimeout","rendererType","initItems","gotoFrame","resize","_width","_height","updateContainerSize","setSubframe","renderFrame","resetFrame","triggerRenderFrameError","togglePause","stop","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","Number","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","init","end","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","setLoop","isLooping","getPath","getAssetData","show","getDuration","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","setAttribute","body","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","x","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","to","ti","ind","__fnct","getBezierEasing","y","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quaternionToEuler","slerp","createQuaternion","omega","cosom","sinom","scale0","scale1","ax","ay","az","aw","bx","by","bz","bw","acos","sin","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","reset","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","rotate","mCos","mSin","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","m","translate","tx","tz","transform","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","multiply","matrix","matrixProps","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","href","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","useWebWorker","setIDPrefix","__getFactory","scripts","myScript","define","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","pop","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","delta","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","t2","box","boundingBox","cx","cy","splitData","boxIntersect","intersectsImpl","depth","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","prevIndex","nextIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","tangentAngle","angleIn","center","radius","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","right","mid","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","styles","fStyle","fWeight","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","hasReloaded","copies","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","distance","newPosPerc","derivative","denom","tcusp","square","root","p10","p11","p20","p21","bounds","bottom","other","shapeSegmentInverted","pointsType","count","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","size","combinedCharacters","BLACK_FLAG_CODE_POINT","REGIONAL_CHARACTER_A_CODE_POINT","REGIONAL_CHARACTER_Z_CODE_POINT","surrogateModifiers","setUpNode","font","family","parentNode","fontFamily","node","fontSize","fontVariant","fontStyle","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","helper","engine","fontProps","tHelper","fFamily","textContent","fClass","tCanvasHelper","OffscreenCanvas","measureText","text","getComputedTextLength","getCodePoint","string","codePoint","second","isRegionalCode","Font","typekitLoaded","_warned","Date","now","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","charCode","isFlagEmoji","isCombinedCharacter","_char3","isRegionalFlag","isVariationSelector","fontPrototype","found","ch","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","rel","sc","getCharData","_char","console","warn","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","removeChild","SlotManager","slotFactory","RenderableElement","slots","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","component","removeRenderableComponent","prepareRenderableFrame","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","ef","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","content","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","layerId","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","getElementById","pathValue","setupGlobalData","fontsContainer","animationItem","compSize","effectTypes","TRANSFORM_EFFECT","TransformElement","MaskElement","maskElement","viewData","solidPath","rect","expansor","feMorph","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","mask","createLayerSolidPath","invRect","drawPath","maskedElement","initTransform","_matMdf","_localMatMdf","_opMdf","localMat","localOpacity","ao","renderTransform","finalMat","renderLocalTransform","localTransforms","lmat","localOp","searchEffectTransforms","renderableEffectsManager","transformEffects","getEffects","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects$1","idPrefix","SVGEffects","filterManager","createFilter","filters","Effect","effect","countsAsEffect","registerEffect$1","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","td","matteMasks","gg","tt","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","getMatte","matteType","useElement","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","of","ost","buildShapeString","_o","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","render","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charactersArray","shouldCombine","shouldCombineNext","currentChars","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","add","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","validateText","buildNewText","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","config","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","className","focusable","filterSize","runExpressions","destroyed","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","fromCharCode","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","insertBefore","setElements","getElements","destroyElements","addTransformSequence","sequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","svg","loadLuma","_svg","createLumaSvgFilter","createCanvas","loadLumaCanvas","getLumaCanvas","registeredEffects","CVEffects","registerEffect","CVMaskElement","hasMasks","CVBaseElement","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","stroke","fill","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","CanvasContext","strokeStyle","lineCap","CVContextData","stack","cArrPos","cTr","nativeContext","transformMat","currentOpacity","currentFillStyle","appliedFillStyle","currentStrokeStyle","appliedStrokeStyle","currentLineWidth","appliedLineWidth","currentLineCap","appliedLineCap","currentLineJoin","appliedLineJoin","appliedMiterLimit","currentMiterLimit","CVCompElement","CanvasRenderer","clearCanvas","context","dpr","devicePixelRatio","currentGlobalAlpha","contextData","ctxTransform","ctxOpacity","ctxFillStyle","ctxStrokeStyle","ctxLineWidth","ctxLineCap","ctxLineJoin","ctxMiterLimit","ctxFill","ctxFillRect","ctxStroke","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","globalCompositeOperation","hideElement","showElement","clearRect","prepareLayer","bufferCtx","drawImage","getTransform","exitLayer","buffer","forceRealStack","restore","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","grd","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","globalAlpha","rule","actionFlag","containerStyle","mozTransformOrigin","setContext","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","duplicate","newLength","forceRestore","currentContext","prevStack","saveOnNativeFlag","currentStack","newStack","setOpacity","trProps","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","tParent","tCont","children","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","pixelAspect","frameDuration","displayStartTime","numLayers","_typeof$2","seedRandom","nodecrypto","rngname","startdenom","significance","ARC4","keylen","me","copy","flatten","typ","mixkey","seed","smear","stringseed","tostring","options","shortseed","entropy","randomBytes","Uint8Array","crypto","msCrypto","getRandomValues","browser","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","state","initialize$2","propTypes","SHAPE","_typeof$1","ExpressionManager","fetch","frames","_lottieGlobal","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","normalize","vec","rgbToHsl","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","noOp","_value","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","valueAtTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","active","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","substring","posterizeTime","framesPerSecond","hasParent","executeExpression","frameExpressionId","__preventDeadCodeRemoval","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_data","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","getSpeedAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","transformInterface","anchorPointDescriptor","anchor_point","startTime","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","createGroupInterface","groupInterface","mn","_propertyGroup","createValueInterface","numProperties","np","enabled","en","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","view","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","start","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","_sourceText","sourceText","stringValue","fillColor","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","expressionHelpers","searchExpressions","speed","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","current","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","childNodes","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","TransformEffect","SVGTransformEffect","CVTransformEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","sigma","dimensions","sigmaX","sigmaY","edgeMode","forceFrame","isUniformScale","scaleHeight","scaleWidth","nullthrows","message","ReactPropTypesSecret","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","aa","ca","encodeURIComponent","Set","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","ta","pa","qa","oa","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","Reflect","construct","displayName","includes","Pa","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","db","ownerDocument","eb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","namespaceURI","innerHTML","firstChild","MSApp","execUnsafeLocalFunction","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","qb","rb","sb","setProperty","tb","menuitem","area","br","embed","hr","input","keygen","link","param","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","oc","clz32","pc","qc","log","LN2","rc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","fd","gd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","pd","qd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ud","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","date","datetime","email","month","password","range","search","tel","week","oe","listeners","qe","re","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","Ne","contentEditable","Oe","focusedElem","selectionRange","selectionStart","selectionEnd","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","$e","af","bf","cf","df","ff","hf","lf","mf","nf","Ub","listener","pf","qf","rf","sf","capture","passive","J","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","clearTimeout","Hf","Promise","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","pending","bh","eventTime","lane","dh","eh","gh","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","ref","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","tagName","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","gi","hi","ii","ji","ki","getSnapshot","li","mi","ni","lastEffect","stores","oi","qi","ri","deps","si","ui","vi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","digest","Li","Mi","Ni","WeakMap","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","autoFocus","createTextNode","Hj","Ij","Jj","Kj","Lj","WeakSet","V","Mj","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","ok","pk","Y","Z","qk","rk","tk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","pendingSuspenseBoundaries","fl","gl","hl","il","jl","zj","$k","ll","reportError","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","dl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","_extends3","_getPrototypeOf2","_classCallCheck3","_createClass3","_possibleConstructorReturn3","_inherits3","_react2","_propTypes2","_lottieWeb2","Lottie","_React$Component","_temp","_this","_ret","handleClickToPause","_props","eventListeners","registerEvents","nextProps","deRegisterEvents","isStopped","_this2","eventListener","_this3","_this4","_props2","ariaRole","isClickToPauseDisabled","getSize","initial","lottieStyles","outline","onClickHandler","role","tabIndex","__self","__source","Fragment","jsx","jsxs","setState","forceUpdate","escape","_status","_result","Children","toArray","only","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","sortIndex","performance","setImmediate","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","createStyleq","disableCache","disableMix","definedProperties","inlineStyle","nextCache","possibleStyle","$$css","classNameChunk","cacheEntry","definedPropertiesChunk","weakMap","subStyle","_prop","styleq","isRTL","markerProp","compiledStyleIndex","_cachedStyles","_compiledStyle","compileStyle","compiledStyle","cachedStyles","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","getter","definition","globalThis","toStringTag","_objectWithoutPropertiesLoose","excluded","sourceKeys","accessibilityRoleToWebRole","adjustable","header","image","imagebutton","keyboardkey","label","none","summary","accessibilityRole","_role","inferredRole","roleComponents","article","banner","blockquote","complementary","contentinfo","deletion","emphasis","figure","insertion","listitem","main","navigation","paragraph","region","strong","emptyObject","accessibilityStates","propsToAccessibilityComponent","propsToAriaRole","accessibilityLevel","toPropertyKey","ownKeys","_objectSpread2","getOwnPropertyDescriptors","unitlessNumbers","gridRowGap","gridColumnGap","scaleZ","shadowOpacity","prefixKey","int32Color","normalizeColor","isWebColor","colorInt","processColor","toFixed","colorProps","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","shadowColor","textDecorationColor","textShadowColor","normalizeValueWithProperty","supportsCSS3TextDecoration","canUseDOM","CSS","supports","SYSTEM_FONT_STACK","STYLE_SHORT_FORM_EXPANSIONS","borderBlockColor","borderInlineColor","borderRadius","borderStyle","borderBlockStyle","borderInlineStyle","borderWidth","borderBlockWidth","borderInlineWidth","insetBlock","insetInline","marginBlock","marginInline","paddingBlock","paddingInline","overscrollBehavior","borderEndStartRadius","borderEndEndRadius","borderStartStartRadius","borderStartEndRadius","insetBlockEnd","insetBlockStart","createReactDOMStyle","isInline","resolvedStyle","_loop","backgroundClip","WebkitBackgroundClip","flexBasis","textDecorationLine","textDecoration","longFormProperties","marginLeft","marginRight","marginTop","marginBottom","paddingLeft","paddingRight","paddingTop","paddingBottom","longForm","murmurhash2_32_gc","wms","crossFade","cursor","imageSet","logical","sizing","appearance","userSelect","textEmphasisPosition","textEmphasis","textEmphasisStyle","textEmphasisColor","boxDecorationBreak","clipPath","maskImage","maskMode","maskRepeat","maskPosition","maskClip","maskOrigin","maskSize","maskComposite","maskBorderSource","maskBorderMode","maskBorderSlice","maskBorderWidth","maskBorderOutset","maskBorderRepeat","maskBorder","textDecorationStyle","textDecorationSkip","breakAfter","breakBefore","breakInside","columnFill","columnGap","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columnSpan","backdropFilter","hyphens","flowInto","flowFrom","regionFragment","textOrientation","fontKerning","textSizeAdjust","createPrefixer","staticData","_excluded","classicGroup","atomicGroup","customGroup","inset","padding","insetInlineEnd","insetInlineStart","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","borderLeftStyle","borderLeftWidth","borderRightStyle","borderRightWidth","PROPERTIES_FLIP","PROPERTIES_I18N","PROPERTIES_VALUE","atomic","compiledRules","atomicCompile","srcProp","identifier","valueString","normalizedValue","stringifyValueWithProperty","cacheKey","cachedResult","createIdentifier","rules","selector","_processKeyframesValu2","processKeyframesValue","animationNames","keyframesRules","block","createDeclarationBlock","_block","_block2","pointerEvents","_block3","_block4","_block5","scrollbarWidth","_block6","createAtomicRules","orderedRules","sort","localizeableValue","_left","_right","propPolyfill","ltr","rtl","polyfillIndices","ltrPolyfillValues","rtlPolyfillValues","ltrVal","ltrPolyfill","rtlPolyfill","_ltr","_rtl","domStyle","prefixStyles","hash","keyframesValue","_createKeyframes","steps","stepName","createKeyframes","createCSSStyleSheet","rootNode","ShadowRoot","head","sheet","createOrderedCSSStyleSheet","groups","selectors","cssRules","cssRule","cssText","selectorText","groupPattern","decodeGroupRule","getSelectorText","sheetInsert","orderedGroups","getOrderedGroups","nextGroupIndex","nextGroup","isInserted","insertRule","insertRuleAt","groupNumber","previousStart","OrderedCSSStyleSheet","getTextContent","insert","groupValue","markerRule","encodeGroupRule","selectorPattern","roots","sheets","initialRules","warnOnce","defaultOffset","createBoxShadowValue","shadowOffset","shadowRadius","offsetX","offsetY","blurRadius","mapTransform","createTransformValue","PROPERTIES_STANDARD","borderBottomEndRadius","borderBottomStartRadius","borderTopEndRadius","borderTopStartRadius","borderEndColor","borderEndStyle","borderEndWidth","borderStartColor","borderStartStyle","borderStartWidth","marginEnd","marginHorizontal","marginStart","marginVertical","paddingEnd","paddingHorizontal","paddingStart","paddingVertical","ignoredProps","elevation","overlayColor","resizeMode","tintColor","preprocess","originalStyle","nextStyle","shadow","boxShadowValue","boxShadow","textShadow","textShadowOffset","textShadowRadius","textShadowValue","_ref2","createTextShadowValue","originalProp","originalValue","_value2","verticalAlign","staticStyleMap","getRootNode","initialSheet","createSheet","defaultPreprocessOptions","insertRules","compiledOrderedRules","compileAndInsertReset","_classic","animationKeyframes","rest","_processKeyframesValu","_objectSpread","classic","absoluteFillObject","absoluteFill","compiledStyles","styleObj","_atomic","compileAndInsertAtomic","StyleSheet","writingDirection","styleProps","_options","preprocessOptions","localizeStyle","customStyleq","frozenProps","originalValues","valuePolyfill","inline","compose","style1","style2","flatArray","flat","getSheet","hairlineWidth","resolveRNStyle","processIDRefList","idRefList","pointerEventsStyles","auto","createDOMProps","ariaActiveDescendant","accessibilityActiveDescendant","ariaAtomic","accessibilityAtomic","ariaAutoComplete","accessibilityAutoComplete","ariaBusy","accessibilityBusy","ariaChecked","accessibilityChecked","ariaColumnCount","accessibilityColumnCount","ariaColumnIndex","accessibilityColumnIndex","ariaColumnSpan","accessibilityColumnSpan","ariaControls","accessibilityControls","ariaCurrent","accessibilityCurrent","ariaDescribedBy","accessibilityDescribedBy","ariaDetails","accessibilityDetails","ariaDisabled","accessibilityDisabled","ariaErrorMessage","accessibilityErrorMessage","ariaExpanded","accessibilityExpanded","ariaFlowTo","accessibilityFlowTo","ariaHasPopup","accessibilityHasPopup","ariaHidden","accessibilityHidden","ariaInvalid","accessibilityInvalid","ariaKeyShortcuts","accessibilityKeyShortcuts","accessibilityLabel","ariaLabelledBy","accessibilityLabelledBy","ariaLevel","ariaLive","accessibilityLiveRegion","ariaModal","accessibilityModal","ariaMultiline","accessibilityMultiline","ariaMultiSelectable","accessibilityMultiSelectable","ariaOrientation","accessibilityOrientation","ariaOwns","accessibilityOwns","ariaPlaceholder","accessibilityPlaceholder","ariaPosInSet","accessibilityPosInSet","ariaPressed","accessibilityPressed","ariaReadOnly","accessibilityReadOnly","ariaRequired","accessibilityRequired","ariaRoleDescription","accessibilityRoleDescription","ariaRowCount","accessibilityRowCount","ariaRowIndex","accessibilityRowIndex","ariaRowSpan","accessibilityRowSpan","ariaSelected","accessibilitySelected","ariaSetSize","accessibilitySetSize","ariaSort","accessibilitySort","ariaValueMax","accessibilityValueMax","ariaValueMin","accessibilityValueMin","ariaValueNow","accessibilityValueNow","ariaValueText","accessibilityValueText","dataSet","nativeID","testID","domProps","AccessibilityUtil","_ariaActiveDescendant","_ariaAtomic","_ariaAutoComplete","_ariaBusy","_ariaChecked","_ariaColumnCount","_ariaColumnIndex","_ariaColumnSpan","_ariaControls","_ariaCurrent","_ariaDescribedBy","_ariaDetails","_ariaErrorMessage","_ariaExpanded","_ariaFlowTo","_ariaHasPopup","_ariaHidden","_ariaInvalid","_ariaKeyShortcuts","_ariaLabel","_ariaLabelledBy","_ariaLevel","_ariaLive","_ariaModal","_ariaMultiline","_ariaMultiSelectable","_ariaOrientation","_ariaOwns","_ariaPlaceholder","_ariaPosInSet","_ariaPressed","_ariaReadOnly","readOnly","_ariaRequired","required","_ariaRoleDescription","_ariaRowCount","_ariaRowIndex","_ariaRowSpan","_ariaSelected","_ariaSetSize","_ariaSort","_ariaValueMax","_ariaValueMin","_ariaValueNow","_ariaValueText","dataProp","dataName","dataValue","_StyleSheet","_id","rtlScripts","rtlLangs","defaultLocale","LocaleContext","getLocaleDirection","cachedRTL","Intl","Locale","script","maximize","lang","isLocaleRTL","LocaleProvider","React","useLocaleContext","accessibilityComponent","accessibilityProps","clickProps","onAuxClick","onContextMenu","onGotPointerCapture","onLostPointerCapture","onPointerCancel","onPointerDown","onPointerEnter","onPointerMove","onPointerLeave","onPointerOut","onPointerOver","onPointerUp","focusProps","onBlur","onFocus","keyboardProps","onKeyDown","onKeyDownCapture","onKeyUp","onKeyUpCapture","mouseProps","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOver","onMouseOut","onMouseUp","touchProps","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","pick","nextObj","isCustomProperty","isUnitlessNumber","styleName","styleValue","dangerousStyleValue","getRect","offsetLeft","offsetTop","offsetParent","clientLeft","clientTop","scrollY","scrollX","measureLayout","relativeToNativeNode","relativeNode","isConnected","relativeRect","_getRect","elementsToIgnore","BODY","INPUT","SELECT","TEXTAREA","UIManager","blur","getAttribute","isContentEditable","measure","measureInWindow","_getRect2","onFail","onSuccess","updateView","setValueForStyles","configureNextLayoutAnimation","onAnimationDidEnd","setLayoutAnimationEnabledExperimental","DOM_LAYOUT_HANDLER_NAME","resizeObserver","useElementLayout","onLayout","observer","ResizeObserver","entry","layout","observe","unobserve","mergeRefs","useMergeRefs","UNINITIALIZED","usePlatformMethods","getInitialValue","useStable","hostNode","relativeToNode","success","failure","getBoundingClientRect","emptyArray","normalizeIdentifier","createResponderEvent","domEvent","responderTouchHistoryStore","propagationWasStopped","domEventChangedTouches","domEventType","force","timestamp","normalizeTouches","touch","locationX","locationY","emulatedTouches","responderEvent","dispatchConfig","touchHistory","MOUSE_DOWN","MOUSE_MOVE","MOUSE_UP","MOUSE_CANCEL","TOUCH_START","TOUCH_MOVE","TOUCH_END","TOUCH_CANCEL","SCROLL","SELECTION_CHANGE","isStartish","eventType","isMoveish","isEndish","isCancelish","keyName","composedPathFallback","getResponderId","getResponderPaths","idPath","nodePath","eventPath","composedPath","getEventPath","hasValidSelection","selection","isTextNode","Node","TEXT_NODE","isSelectionValid","__DEV__","MAX_TOUCH_BANK","timestampForTouch","getTouchIdentifier","recordTouchStart","touchRecord","touchBank","touchActive","startPageX","startPageY","startTimeStamp","currentPageX","currentPageY","currentTimeStamp","previousPageX","previousPageY","previousTimeStamp","resetTouchRecord","createTouchRecord","mostRecentTimeStamp","printTouch","printTouchBank","printed","startRegistration","moveRegistration","shouldSetResponderEvents","touchstart","mousedown","touchmove","mousemove","scroll","emptyResponder","responderListenersMap","isEmulatingMouseEvents","trackedTouchCount","currentResponder","_touchHistory","numberActiveTouches","indexOfSingleActiveTouch","recordTouchTrack","topLevelType","recordTouchMove","recordTouchEnd","touchTrackToCheck","activeRecord","changeCurrentResponder","responder","getResponderConfig","eventTarget","isStartEvent","noModifiers","isPrimaryPointerDown","isMoveEvent","isEndEvent","isScrollEvent","isScroll","isSelectionChangeEvent","isSelectionChange","wantsResponder","eventPaths","wasNegotiated","currentResponderIdPath","eventIdPath","lowestCommonAncestor","pathA","pathB","pathALength","pathBLength","itemA","indexA","itemB","indexB","getLowestCommonAncestor","shouldSetCallbacks","shouldSetCallbackCaptureName","shouldSetCallbackBubbleName","callbackName","shouldSetCallback","_id2","_node2","findWantsResponder","_currentResponder2","currentId","currentNode","_getResponderConfig2","onResponderGrant","onResponderReject","registrationName","_getResponderConfig3","onResponderTerminate","onResponderTerminationRequest","allowTransfer","attemptTransfer","_currentResponder","_getResponderConfig","onResponderStart","onResponderMove","onResponderEnd","onResponderRelease","isTerminateEvent","isReleaseEvent","hasTargetTouches","shouldTerminate","documentEventsCapturePhase","documentEventsBubblePhase","addNode","setResponderId","removeNode","_currentResponder3","terminateResponder","idCounter","useResponderEvents","hostRef","isAttachedRef","__reactResponderSystemActive","ResponderSystem","_config","onMoveShouldSetResponder","onMoveShouldSetResponderCapture","onScrollShouldSetResponder","onScrollShouldSetResponderCapture","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","onStartShouldSetResponder","onStartShouldSetResponderCapture","requiresResponderSystem","isResponder","forwardPropsList","forwardedProps","onScroll","onWheel","View","forwardedRef","hrefAttrs","hasTextAncestor","TextAncestorContext","contextDirection","langDirection","componentDirection","supportedProps","pickProps","view$raw","download","setRef","alignItems","border","boxSizing","flexDirection","listStyle","fontScale","shouldInit","win","visualViewport","docEl","clientHeight","clientWidth","handleResize","handler","Dimensions","dimension","invariant","initialDimensions","remove","_handler","_extends","getAssetByID","assetId","dataUriPattern","ImageUriCache","uri","_entries","Boolean","lastUsedTimestamp","refCount","_cleanUpIfNeeded","leastRecentlyUsedKey","leastRecentlyUsedEntry","imageUris","_maximumEntries","requests","ImageLoader","abort","requestId","onerror","onload","complete","interval","naturalHeight","naturalWidth","onLoad","onDecode","decode","prefetch","reject","queryCache","uris","PixelRatio","getFontScale","getPixelSizeForLayoutSize","layoutSize","roundToNearestPixel","ratio","LOADED","LOADING","_filterId","svgDataUriPattern","resolveAssetUri","asset","scales","preferredScale","reduce","prev","curr","scaleSuffix","httpServerLocation","defaultSource","draggable","onLoadEnd","onLoadStart","_React$useState","updateState","_React$useState2","updateLayout","hiddenImageRef","filterRef","requestRef","shouldDisplaySource","_extractNonStandardSt","tintColorProp","flatStyle","_filter","shadowString","extractNonStandardStyleProps","_resizeMode","_tintColor","selectedSource","displayImageUri","imageSizeStyle","_getAssetByID","resolveAssetDimensions","backgroundImage","backgroundSize","_hiddenImageRef$curre","_height3","_width3","scaleFactor","getBackgroundSize","hiddenImage","alt","accessibilityImage$raw","abortPendingRequest","_layout","undo","resizeModeStyles","visibility","floodColor","in2","operator","createTintColorSVG","ImageWithStatics","backgroundPosition","backgroundRepeat","contain","cover","stretch","createSvgCircle","ActivityIndicator","_props$animating","animating","_props$color","_props$hidesWhenStopp","hidesWhenStopped","_props$size","viewBox","indicatorSizes","animationPause","justifyContent","animationDuration","animationTimingFunction","animationPlayState","small","large","deepDiffer","one","two","maxDepth","twoKey","OS","select","web","isTesting","_createForOfIteratorHelperLoose","allowArrayLike","colors","onRefresh","progressBackgroundColor","progressViewOffset","refreshing","titleColor","_currentlyFocusedNode","currentlyFocusedField","focusTextInput","textFieldNode","blurTextInput","dismissKeyboard","TextInputState","normalizeScrollEvent","contentOffset","contentSize","scrollHeight","scrollWidth","layoutMeasurement","ScrollViewBase","_props$scrollEnabled","scrollEnabled","_props$scrollEventThr","scrollEventThrottle","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","scrollState","isScrolling","scrollLastTick","scrollTimeout","scrollRef","createPreventableScrollHandler","handleScrollTick","hideScrollbar","handleScrollEnd","lastTick","eventThrottle","timeSinceLastTick","shouldEmitScrollEvent","handleScrollStart","scrollDisabled","overflowX","overflowY","touchAction","ScrollView","super","_scrollNodeRef","_innerViewRef","isTouching","lastMomentumScrollBeginTime","lastMomentumScrollEndTime","observedScrollSinceBecomingResponder","becameResponderWhileAnimating","scrollResponderHandleScrollShouldSetResponder","scrollResponderHandleStartShouldSetResponderCapture","scrollResponderIsAnimating","scrollResponderHandleTerminationRequest","scrollResponderHandleTouchEnd","scrollResponderHandleResponderRelease","currentlyFocusedTextInput","keyboardShouldPersistTaps","onScrollResponderKeyboardDismissed","scrollResponderHandleScroll","scrollResponderHandleResponderGrant","scrollResponderHandleScrollBeginDrag","onScrollBeginDrag","scrollResponderHandleScrollEndDrag","onScrollEndDrag","scrollResponderHandleMomentumScrollBegin","onMomentumScrollBegin","scrollResponderHandleMomentumScrollEnd","onMomentumScrollEnd","scrollResponderHandleTouchStart","scrollResponderHandleTouchMove","scrollResponderScrollTo","animated","getScrollableNode","behavior","scrollResponderZoomTo","Platform","scrollResponderScrollNativeHandleToKeyboard","nodeHandle","additionalOffset","preventNegativeScrollOffset","additionalScrollOffset","getInnerViewNode","scrollResponderTextInputFocusError","scrollResponderInputMeasureAndScrollToKeyboard","keyboardScreenY","keyboardWillOpenTo","endCoordinates","scrollOffsetY","scrollResponderKeyboardWillShow","onKeyboardWillShow","scrollResponderKeyboardWillHide","onKeyboardWillHide","scrollResponderKeyboardDidShow","onKeyboardDidShow","scrollResponderKeyboardDidHide","onKeyboardDidHide","flashScrollIndicators","scrollResponderFlashScrollIndicators","getScrollResponder","getInnerViewRef","getNativeScrollRef","scrollTo","scrollToEnd","horizontal","scrollResponderNode","_handleContentOnLayout","_e$nativeEvent$layout","onContentSizeChange","_handleScroll","keyboardDismissMode","_setInnerViewRef","_setScrollNodeRef","scrollResponderHandleStartShouldSetResponder","scrollResponderHandleResponderReject","_this$props","contentContainerStyle","refreshControl","stickyHeaderIndices","pagingEnabled","centerContent","contentSizeChangeProps","hasStickyHeaderIndices","isSticky","stickyHeader","pagingEnabledChild","contentContainer","collapsable","contentContainerHorizontal","contentContainerCenterContent","baseStyle","baseHorizontal","baseVertical","pagingEnabledStyle","pagingEnabledHorizontal","pagingEnabledVertical","scrollResponderHandleTerminate","ScrollViewClass","scrollView","commonStyle","WebkitOverflowScrolling","scrollSnapType","scrollSnapAlign","ForwardedScrollView","onMoreTasks","_onMoreTasks","_queueStack","tasks","popable","enqueue","task","_getCurrentQueue","enqueueTasks","cancelTasks","tasksToCancel","idx","hasTasksToProcess","processNext","gen","_genPromise","run","stackIdx","stackItem","ex","isSupported","requestIdleCallback","didTimeout","timeRemaining","cancelIdleCallback","_emitter","_registry","addListener","registrations","registry","allocate","registration","emit","_arr","removeAllListeners","listenerCount","InteractionManager","interactionStart","interactionComplete","runAfterInteractions","promise","_scheduleUpdate","_taskQueue","cancel","createInteractionHandle","handle","_inc","_addInteractionSet","clearInteractionHandle","_deleteInteractionSet","setDeadline","deadline","_deadline","_interactionSet","TaskQueue","_nextUpdateHandle","_processUpdate","interactionCount","nextInteractionCount","begin","clear","delayMS","_delay","_callback","dispose","_taskHandle","schedule","CellRenderMask","numCells","_numCells","_regions","isSpacer","enumerateRegions","addCells","cells","_this$_findRegion","_findRegion","firstIntersect","firstIntersectIdx","_this$_findRegion2","lastIntersect","lastIntersectIdx","newLeadRegion","newTailRegion","newMainRegion","replacementRegions","numRegionsToDelete","every","cellIdx","firstIdx","lastIdx","middleIdx","middleRegion","ChildListCollection","_cellKeyToChildren","_childrenToCellKey","cellKey","_this$_cellKeyToChild","cellLists","_step","_iterator","_step2","forEachInCell","_this$_cellKeyToChild2","_step3","_iterator3","anyInCell","_this$_cellKeyToChild3","_step4","_iterator4","Info","any_blank_count","any_blank_ms","any_blank_speed_sum","mostly_blank_count","mostly_blank_ms","pixels_blank","pixels_sampled","pixels_scrolled","total_time_spent","sample_count","_listeners","_minSampleCount","_sampleRate","setSampleRate","sampleRate","setMinSampleCount","minSampleCount","getFrameMetrics","_anyBlankStartTime","_enabled","_info","_mostlyBlankStartTime","_samplesStartTime","_getFrameMetrics","_resetData","deactivateAndFlush","info","computeBlankness","cellsAroundViewport","scrollMetrics","getItemCount","dOffset","visibleLength","scrollSpeed","blankTop","inLayout","blankBottom","bottomEdge","blankness","StateSafePureComponent","_inAsyncStateUpdate","_installSetStateHooks","partialState","newProps","newState","_isViewable","viewAreaMode","viewablePercentThreshold","viewportHeight","itemLength","_isEntirelyVisible","pixels","visibleHeight","_getPixelsVisible","viewAreaCoveragePercentThreshold","_hasInteracted","_timers","_viewableIndices","_viewableItems","computeViewableItems","scrollOffset","renderRange","itemCount","_this$_config","itemVisiblePercentThreshold","viewableIndices","firstVisible","metrics","onUpdate","createViewToken","onViewableItemsChanged","waitForInteraction","minimumViewTime","_onUpdateSync","resetViewableIndices","recordInteraction","viewableIndicesToCheck","prevItems","nextItems","viewable","_step$value","_step2$value","_viewable","isViewable","viewableItems","viewabilityConfig","VirtualizedListContext","VirtualizedListContextProvider","getScrollMetrics","getOutermostParentListRef","registerAsNestedChild","unregisterAsNestedChild","VirtualizedListCellContextProvider","_ref3","currContext","CellRenderer","separatorProps","highlighted","leadingItem","_separators","highlight","prevCellKey","onUpdateSeparators","unhighlight","_this$props2","updateProps","_this$props3","_onLayout","onCellLayout","prevState","updateSeparatorProps","onUnmount","_renderElement","renderItem","ListItemComponent","separators","_this$props4","CellRendererComponent","ItemSeparatorComponent","inversionStyle","onCellFocusCapture","itemSeparator","cellStyle","rowReverse","columnReverse","row","onFocusCapture","computeWindowedRenderLimits","maxToRenderPerBatch","windowSize","getFrameMetricsApprox","_scrollMetrics$zoomSc","zoomScale","visibleBegin","visibleEnd","overscanLength","fillPreference","overscanBegin","overscanEnd","_elementsThatOverlapO","offsets","offsetIndex","currentOffset","frame","scaledOffsetStart","scaledOffsetEnd","elementsThatOverlapOffsets","overscanFirst","overscanLast","visible","newCellCount","newRangeCount","maxNewCells","firstWillAddMore","firstShouldIncrement","lastWillAddMore","lastShouldIncrement","keyExtractor","_usedIndexForKey","_keylessItemComponentName","horizontalOrDefault","maxToRenderPerBatchOrDefault","onEndReachedThresholdOrDefault","onEndReachedThreshold","getScrollingThreshold","windowSizeOrDefault","VirtualizedList","veryLast","__getFrameMetricsApprox","_footerLength","_scrollMetrics","_scrollRef","scrollToIndex","getItemLayout","onScrollToIndexFailed","viewOffset","viewPosition","_highestMeasuredFrameIndex","averageItemLength","_averageCellLength","highestMeasuredFrameIndex","_getOffsetApprox","scrollToItem","getItem","_index","scrollToOffset","_nestedChildLists","childList","_viewabilityTuples","viewabilityHelper","_updateViewableItems","getScrollRef","_getCellKey","_this$context","hasMore","_hasMore","_this$props$updateCel","_getScrollMetrics","_getOutermostParentListRef","_isNestedWithSameOrientation","_registerAsNestedChild","_unregisterAsNestedChild","_onUpdateSeparators","_cellRefs","_getSpacerKey","isVertical","_frames","_hasTriggeredInitialScrollToIndex","_hasWarned","_headerLength","_hiPriInProgress","_indicesToKeys","_lastFocusedCellKey","_offsetFromParentVirtualizedList","_prevParentOffset","contentLength","dt","_sentStartForContentLength","_sentEndForContentLength","_totalCellLength","_totalCellsMeasured","_captureScrollRef","_defaultRenderScrollComponent","_props$refreshing","RefreshControl","_onCellLayout","_selectOffset","_selectLength","_scheduleCellsToRenderUpdate","_triggerRemeasureForChildListsInCell","_computeBlankness","_onCellUnmount","measureLayoutRelativeToContainingList","_maybeCallOnEdgeReached","_onLayoutEmpty","_onLayoutFooter","_getFooterCellKey","_onLayoutHeader","_onContentSizeChange","initialScrollIndex","_convertParentScrollMetrics","_onScroll","_this$_convertParentS","perf","infoLog","prevDt","_fillRateHelper","_onScrollBeginDrag","tuple","_onScrollEndDrag","_onMomentumScrollBegin","_onMomentumScrollEnd","_updateCellsToRender","_adjustCellsAroundViewport","renderMask","_createRenderMask","_getNonViewportRenderRegions","_createViewToken","_keyExtractor","isInteger","frameMetrics","remainder","focusedCellIndex","heightOfCellsBeforeFocused","heightOfCellsAfterFocused","_checkProps","FillRateHelper","_updateCellsToRenderBatcher","Batchinator","updateCellsBatchingPeriod","viewabilityConfigCallbackPairs","ViewabilityHelper","initialRenderRegion","_initialRenderRegion","invertedWheelEventHandler","scrollLength","clientLength","isEventTargetScrollable","leftoverDelta","targetDelta","inverted","nextScrollLeft","nextScrollTop","__isNative","additionalRegions","_i2","_allRegions","initialRegion","stickyIndicesSet","_ensureClosestStickyHeader","_props$initialScrollI","initialNumToRender","firstCellIndex","stickyOffset","ListHeaderComponent","itemIdx","newCellsAroundViewport","_this$_scrollMetrics","distanceFromEnd","_constrainToItemCount","disableVirtualization","renderAhead","EPSILON","childIdx","_findFirstChildWithMore","cellKeyForIndex","setupWebWheelHandler","teardownWebWheelHandler","constrainedCells","_pushCells","stickyIndicesFromProps","debug","shouldListenForLayout","_onCellFocusCapture","nestedContext","defaultKeyExtractor","_this$props5","ListEmptyComponent","ListFooterComponent","_this$props6","horizontallyInverted","verticallyInverted","_element","ListHeaderComponentStyle","_element2","spacerKey","renderRegions","lastSpacer","predicate","findLastWhere","section","firstMetrics","lastMetrics","spacerSize","_element3","ListFooterComponentStyle","scrollProps","invertStickyHeaders","renderScrollComponent","_renderDebugOverlay","prevProps","_this$props7","extraData","hiPriInProgress","framesInLayout","windowTop","frameLast","windowLen","visTop","visLen","debugOverlayBase","debugOverlay","debugOverlayFrame","debugOverlayFrameLast","debugOverlayFrameVis","_this$props8","onStartReached","onStartReachedThreshold","onEndReached","_this$_scrollMetrics2","distanceFromStart","isWithinStartThreshold","isWithinEndThreshold","_this$state$cellsArou","_this$_scrollMetrics3","hiPri","onStartReachedThresholdOrDefault","distTop","distBottom","safeIsNaN","areInputsEqual","newInputs","lastInputs","numColumnsOrDefault","numColumns","FlatList","_listRef","_virtualizedListPairs","_captureRef","_getItem","itemIndex","_item","_getItemCount","isArrayLike","_this$props$keyExtrac","_renderer","columnWrapperStyle","cols","renderProp","_item2","_memoizedRenderer","resultFn","isEqual","memoized","newArgs","lastThis","lastArgs","lastResult","memoizeOne","_createOnViewableItemsChanged","_pushMultiColumnViewable","_this$props$keyExtrac2","removeClippedSubviews","_removeClippedSubviews","_this$props$strictMod","strictMode","restProps","Text","numberOfLines","onPress","selectable","handleClick","WebkitLineClamp","textHasAncestor$raw","text$raw","textOneLine","textMultiLine","notSelectable","pressable","textStyle","textAlign","whiteSpace","wordWrap","textOverflow","WebkitBoxOrient","DELAY","ERROR","LONG_PRESS_DETECTED","NOT_RESPONDER","RESPONDER_ACTIVE_LONG_PRESS_START","RESPONDER_ACTIVE_PRESS_START","RESPONDER_INACTIVE_PRESS_START","RESPONDER_RELEASE","RESPONDER_TERMINATED","Transitions","RESPONDER_GRANT","getElementRole","getElementType","isActiveSignal","signal","isButtonRole","isPressStartSignal","isValidKeyPress","isSpacebar","isButtonish","PressResponder","_eventHandlers","_isPointerTouch","_longPressDelayTimeout","_longPressDispatched","_pressDelayTimeout","_pressOutDelayTimeout","_touchState","configure","_cancelLongPressDelayTimeout","_cancelPressDelayTimeout","_cancelPressOutDelayTimeout","getEventHandlers","_createEventHandlers","shouldDelay","_selectionTerminated","_receiveSignal","delayPressStart","normalizeDelay","delayLongPress","_handleLongPress","keyupHandler","isSpacebarKey","onPressMove","getTouchFromResponderEvent","_touchActivatePosition","onLongPress","_this$_config2","_this$_config3","nextState","_performTransitionSideEffects","isTerminalSignal","isPrevActive","isNextActive","_activate","_deactivate","_this$_config4","_onLongPress","_this$_config5","onPressChange","onPressStart","_this$_config6","onPressEnd","delayPressEnd","_event$nativeEvent","TouchableOpacity","activeOpacity","delayPressIn","delayPressOut","onPressIn","onPressOut","rejectResponderTermination","_useState","setDuration","_useState2","opacityOverride","setOpacityOverride","setOpacityTo","setOpacityActive","setOpacityInactive","pressEventHandlers","pressResponderRef","pressResponder","usePressEvents","isGrant","actionable","transitionDuration","MemoedTouchableOpacity","counter","setCounter","actioned","setActioned","pushCount","onAction","_jsx","_continuationTokenLocalStorageKey","_newFeedPathname","windowDimensions","dims","setDims","handleChange","useWindowDimensions","pictures","setPictures","fetchingPictures","setFetchingPictures","continuationToken","setContinuationToken","pictureWidth","setPictureWidth","windowHeight","setWindowHeight","windowWidth","setWindowWidth","ct","updateContinuationToken","localStorage","fetchPictures","setItem","async","_pictureResponse$Pict","_pictureResponse$Cont","_pictureResponse$Pict2","pictureResponse","res","json","Pictures","ContinuationToken","urls","all","preloadPictures","Url","_jsxs","_Fragment","textTransform","PepePoop","Height","Width","HiddenButton","reportPicture","reload","webkitUserSelect","mozUserSelect","msUserSelect","PictureFeed","ReactDOM","App"],"sourceRoot":""}