{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/array-buffer-view-core.js","webpack:///./node_modules/core-js/internals/to-string.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./node_modules/core-js/internals/string-html-forced.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/typed-array-constructor.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/to-property-key.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/internals/internal-metadata.js","webpack:///./node_modules/core-js/internals/is-symbol.js","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./assets/src/js/helpers/setCSSVariable.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/internals/array-buffer.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/internals/math-expm1.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/object-prototype-accessors-forced.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/internals/typed-array-species-constructor.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/engine-webkit-version.js","webpack:///./node_modules/core-js/internals/array-buffer-native.js","webpack:///./node_modules/core-js/internals/string-pad.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/core-js/internals/math-sign.js","webpack:///./node_modules/core-js/internals/is-integer.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack:///external \"jQuery\"","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/core-js/internals/array-copy-within.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/array-last-index-of.js","webpack:///./node_modules/core-js/internals/array-sort.js","webpack:///./node_modules/core-js/internals/engine-ff-version.js","webpack:///./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack:///./node_modules/core-js/internals/to-index.js","webpack:///./node_modules/core-js/internals/function-bind.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/math-log1p.js","webpack:///./node_modules/core-js/internals/number-parse-float.js","webpack:///./node_modules/core-js/internals/number-parse-int.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/core-js/internals/object-to-array.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/is-data-descriptor.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/internals/string-pad-webkit-bug.js","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/core-js/internals/to-offset.js","webpack:///./node_modules/core-js/internals/typed-array-from.js","webpack:///./node_modules/core-js/internals/collection-weak.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/dom-token-list-prototype.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/lottie-web/build/player/lottie.js","webpack:///./node_modules/core-js/stable/index.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/array-species-constructor.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/modules/es.symbol.async-iterator.js","webpack:///./node_modules/core-js/modules/es.symbol.has-instance.js","webpack:///./node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/modules/es.symbol.match.js","webpack:///./node_modules/core-js/modules/es.symbol.match-all.js","webpack:///./node_modules/core-js/modules/es.symbol.replace.js","webpack:///./node_modules/core-js/modules/es.symbol.search.js","webpack:///./node_modules/core-js/modules/es.symbol.species.js","webpack:///./node_modules/core-js/modules/es.symbol.split.js","webpack:///./node_modules/core-js/modules/es.symbol.to-primitive.js","webpack:///./node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack:///./node_modules/core-js/modules/es.symbol.unscopables.js","webpack:///./node_modules/core-js/modules/es.aggregate-error.js","webpack:///./node_modules/core-js/modules/es.array.at.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/core-js/modules/es.array.copy-within.js","webpack:///./node_modules/core-js/modules/es.array.every.js","webpack:///./node_modules/core-js/modules/es.array.fill.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./node_modules/core-js/modules/es.array.flat-map.js","webpack:///./node_modules/core-js/modules/es.array.for-each.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/core-js/modules/es.array.is-array.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/core-js/modules/es.array.last-index-of.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/core-js/modules/es.array.of.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/modules/es.array.reduce-right.js","webpack:///./node_modules/core-js/modules/es.array.reverse.js","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/core-js/modules/es.array.some.js","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/core-js/modules/es.array.species.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack:///./node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack:///./node_modules/core-js/modules/es.array-buffer.constructor.js","webpack:///./node_modules/core-js/internals/ieee754.js","webpack:///./node_modules/core-js/modules/es.array-buffer.is-view.js","webpack:///./node_modules/core-js/modules/es.array-buffer.slice.js","webpack:///./node_modules/core-js/modules/es.data-view.js","webpack:///./node_modules/core-js/modules/es.date.get-year.js","webpack:///./node_modules/core-js/modules/es.date.now.js","webpack:///./node_modules/core-js/modules/es.date.set-year.js","webpack:///./node_modules/core-js/modules/es.date.to-gmt-string.js","webpack:///./node_modules/core-js/modules/es.date.to-iso-string.js","webpack:///./node_modules/core-js/internals/date-to-iso-string.js","webpack:///./node_modules/core-js/modules/es.date.to-json.js","webpack:///./node_modules/core-js/modules/es.date.to-primitive.js","webpack:///./node_modules/core-js/internals/date-to-primitive.js","webpack:///./node_modules/core-js/modules/es.date.to-string.js","webpack:///./node_modules/core-js/modules/es.escape.js","webpack:///./node_modules/core-js/modules/es.function.bind.js","webpack:///./node_modules/core-js/modules/es.function.has-instance.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/core-js/modules/es.global-this.js","webpack:///./node_modules/core-js/modules/es.json.stringify.js","webpack:///./node_modules/core-js/modules/es.json.to-string-tag.js","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/modules/es.math.acosh.js","webpack:///./node_modules/core-js/modules/es.math.asinh.js","webpack:///./node_modules/core-js/modules/es.math.atanh.js","webpack:///./node_modules/core-js/modules/es.math.cbrt.js","webpack:///./node_modules/core-js/modules/es.math.clz32.js","webpack:///./node_modules/core-js/modules/es.math.cosh.js","webpack:///./node_modules/core-js/modules/es.math.expm1.js","webpack:///./node_modules/core-js/modules/es.math.fround.js","webpack:///./node_modules/core-js/internals/math-fround.js","webpack:///./node_modules/core-js/modules/es.math.hypot.js","webpack:///./node_modules/core-js/modules/es.math.imul.js","webpack:///./node_modules/core-js/modules/es.math.log10.js","webpack:///./node_modules/core-js/modules/es.math.log1p.js","webpack:///./node_modules/core-js/modules/es.math.log2.js","webpack:///./node_modules/core-js/modules/es.math.sign.js","webpack:///./node_modules/core-js/modules/es.math.sinh.js","webpack:///./node_modules/core-js/modules/es.math.tanh.js","webpack:///./node_modules/core-js/modules/es.math.to-string-tag.js","webpack:///./node_modules/core-js/modules/es.math.trunc.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/core-js/modules/es.number.epsilon.js","webpack:///./node_modules/core-js/modules/es.number.is-finite.js","webpack:///./node_modules/core-js/internals/number-is-finite.js","webpack:///./node_modules/core-js/modules/es.number.is-integer.js","webpack:///./node_modules/core-js/modules/es.number.is-nan.js","webpack:///./node_modules/core-js/modules/es.number.is-safe-integer.js","webpack:///./node_modules/core-js/modules/es.number.max-safe-integer.js","webpack:///./node_modules/core-js/modules/es.number.min-safe-integer.js","webpack:///./node_modules/core-js/modules/es.number.parse-float.js","webpack:///./node_modules/core-js/modules/es.number.parse-int.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/core-js/modules/es.number.to-precision.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/modules/es.object.create.js","webpack:///./node_modules/core-js/modules/es.object.define-getter.js","webpack:///./node_modules/core-js/modules/es.object.define-properties.js","webpack:///./node_modules/core-js/modules/es.object.define-property.js","webpack:///./node_modules/core-js/modules/es.object.define-setter.js","webpack:///./node_modules/core-js/modules/es.object.entries.js","webpack:///./node_modules/core-js/modules/es.object.freeze.js","webpack:///./node_modules/core-js/modules/es.object.from-entries.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-names.js","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.has-own.js","webpack:///./node_modules/core-js/modules/es.object.is.js","webpack:///./node_modules/core-js/modules/es.object.is-extensible.js","webpack:///./node_modules/core-js/modules/es.object.is-frozen.js","webpack:///./node_modules/core-js/modules/es.object.is-sealed.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/core-js/modules/es.object.lookup-getter.js","webpack:///./node_modules/core-js/modules/es.object.lookup-setter.js","webpack:///./node_modules/core-js/modules/es.object.prevent-extensions.js","webpack:///./node_modules/core-js/modules/es.object.seal.js","webpack:///./node_modules/core-js/modules/es.object.set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/modules/es.object.values.js","webpack:///./node_modules/core-js/modules/es.parse-float.js","webpack:///./node_modules/core-js/modules/es.parse-int.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/engine-is-browser.js","webpack:///./node_modules/core-js/modules/es.promise.all-settled.js","webpack:///./node_modules/core-js/modules/es.promise.any.js","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/core-js/modules/es.reflect.apply.js","webpack:///./node_modules/core-js/modules/es.reflect.construct.js","webpack:///./node_modules/core-js/modules/es.reflect.define-property.js","webpack:///./node_modules/core-js/modules/es.reflect.delete-property.js","webpack:///./node_modules/core-js/modules/es.reflect.get.js","webpack:///./node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es.reflect.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es.reflect.has.js","webpack:///./node_modules/core-js/modules/es.reflect.is-extensible.js","webpack:///./node_modules/core-js/modules/es.reflect.own-keys.js","webpack:///./node_modules/core-js/modules/es.reflect.prevent-extensions.js","webpack:///./node_modules/core-js/modules/es.reflect.set.js","webpack:///./node_modules/core-js/modules/es.reflect.set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.reflect.to-string-tag.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es.regexp.dot-all.js","webpack:///./node_modules/core-js/modules/es.regexp.flags.js","webpack:///./node_modules/core-js/modules/es.regexp.sticky.js","webpack:///./node_modules/core-js/modules/es.regexp.test.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/modules/es.set.js","webpack:///./node_modules/core-js/modules/es.string.at-alternative.js","webpack:///./node_modules/core-js/modules/es.string.code-point-at.js","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/core-js/modules/es.string.from-code-point.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/core-js/modules/es.string.match-all.js","webpack:///./node_modules/core-js/modules/es.string.pad-end.js","webpack:///./node_modules/core-js/modules/es.string.pad-start.js","webpack:///./node_modules/core-js/modules/es.string.raw.js","webpack:///./node_modules/core-js/modules/es.string.repeat.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/modules/es.string.replace-all.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/core-js/modules/es.string.substr.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/core-js/modules/es.string.trim-end.js","webpack:///./node_modules/core-js/modules/es.string.trim-start.js","webpack:///./node_modules/core-js/modules/es.string.anchor.js","webpack:///./node_modules/core-js/modules/es.string.big.js","webpack:///./node_modules/core-js/modules/es.string.blink.js","webpack:///./node_modules/core-js/modules/es.string.bold.js","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./node_modules/core-js/modules/es.string.fontcolor.js","webpack:///./node_modules/core-js/modules/es.string.fontsize.js","webpack:///./node_modules/core-js/modules/es.string.italics.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/modules/es.string.small.js","webpack:///./node_modules/core-js/modules/es.string.strike.js","webpack:///./node_modules/core-js/modules/es.string.sub.js","webpack:///./node_modules/core-js/modules/es.string.sup.js","webpack:///./node_modules/core-js/modules/es.typed-array.float32-array.js","webpack:///./node_modules/core-js/internals/to-positive-integer.js","webpack:///./node_modules/core-js/modules/es.typed-array.float64-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.int8-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.int16-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.int32-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint16-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint32-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.at.js","webpack:///./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack:///./node_modules/core-js/modules/es.typed-array.every.js","webpack:///./node_modules/core-js/modules/es.typed-array.fill.js","webpack:///./node_modules/core-js/modules/es.typed-array.filter.js","webpack:///./node_modules/core-js/internals/typed-array-from-species-and-list.js","webpack:///./node_modules/core-js/internals/array-from-constructor-and-list.js","webpack:///./node_modules/core-js/modules/es.typed-array.find.js","webpack:///./node_modules/core-js/modules/es.typed-array.find-index.js","webpack:///./node_modules/core-js/modules/es.typed-array.for-each.js","webpack:///./node_modules/core-js/modules/es.typed-array.from.js","webpack:///./node_modules/core-js/modules/es.typed-array.includes.js","webpack:///./node_modules/core-js/modules/es.typed-array.index-of.js","webpack:///./node_modules/core-js/modules/es.typed-array.iterator.js","webpack:///./node_modules/core-js/modules/es.typed-array.join.js","webpack:///./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack:///./node_modules/core-js/modules/es.typed-array.map.js","webpack:///./node_modules/core-js/modules/es.typed-array.of.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack:///./node_modules/core-js/modules/es.typed-array.reverse.js","webpack:///./node_modules/core-js/modules/es.typed-array.set.js","webpack:///./node_modules/core-js/modules/es.typed-array.slice.js","webpack:///./node_modules/core-js/modules/es.typed-array.some.js","webpack:///./node_modules/core-js/modules/es.typed-array.sort.js","webpack:///./node_modules/core-js/modules/es.typed-array.subarray.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-string.js","webpack:///./node_modules/core-js/modules/es.unescape.js","webpack:///./node_modules/core-js/modules/es.weak-map.js","webpack:///./node_modules/core-js/modules/es.weak-set.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/modules/web.immediate.js","webpack:///./node_modules/core-js/modules/web.queue-microtask.js","webpack:///./node_modules/core-js/modules/web.timers.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///./node_modules/core-js/modules/web.url.to-json.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./assets/src/js/polyfills/digifix-polyfills.js","webpack:///./assets/src/js/general.js","webpack:///./assets/src/js/job-listing.js","webpack:///./assets/src/js/scroll-spy.js","webpack:///./assets/src/js/bodymovin.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","global","getOwnPropertyDescriptor","f","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","options","source","target","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","undefined","sham","exec","error","it","Math","check","globalThis","window","self","this","Function","isObject","TypeError","String","toInteger","min","argument","shared","has","uid","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","fails","NAME","Constructor","Prototype","NATIVE_ARRAY_BUFFER","DESCRIPTORS","classof","getPrototypeOf","setPrototypeOf","wellKnownSymbol","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","isPrototypeOf","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isTypedArray","klass","aTypedArray","aTypedArrayConstructor","C","exportTypedArrayMethod","KEY","ARRAY","TypedArrayConstructor","exportTypedArrayStaticMethod","isView","isSymbol","IE8_DOM_DEFINE","anObject","toPropertyKey","$defineProperty","O","P","Attributes","requireObjectCoercible","toObject","hasOwn","set","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","state","store","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","TYPE","type","ceil","floor","isNaN","IndexedObject","toLength","arraySpeciesCreate","push","createMethod","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","$this","callbackfn","that","specificCreate","result","boundFunction","length","index","forEach","map","filter","some","every","find","findIndex","filterReject","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","$getOwnPropertyDescriptor","definePropertyModule","inspectSource","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","split","unsafe","simple","join","aFunction","variable","namespace","method","arguments","path","wrappedWellKnownSymbolModule","toString","quot","string","tag","attribute","S","p1","replace","METHOD_NAME","test","toLowerCase","activeXDocument","defineProperties","enumBugKeys","html","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","document","domain","style","display","appendChild","src","contentWindow","open","F","Properties","CORRECT_PROTOTYPE_GETTER","constructor","TAG","configurable","bitmap","writable","getBuiltIn","aPossiblePrototype","setter","CORRECT_SETTER","Array","proto","__proto__","UNSCOPABLES","ArrayPrototype","$","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","anInstance","isInteger","toIndex","toOffset","getOwnPropertyNames","typedArrayFrom","setSpecies","getOwnPropertyDescriptorModule","inheritIfRequired","setInternalState","nativeDefineProperty","nativeGetOwnPropertyDescriptor","round","RangeError","ArrayBuffer","DataView","fromList","list","addGetter","isArrayBuffer","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","wrapper","CLAMPED","BYTES","match","CONSTRUCTOR_NAME","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","exported","addElement","data","view","byteOffset","dummy","typedArrayOffset","$length","offset","buffer","byteLength","$len","slice","toPrimitive","version","userAgent","process","Deno","versions","v8","internalObjectKeys","concat","max","integer","fn","a","b","apply","isArrayIteratorMethod","getIterator","getIteratorMethod","iteratorClose","Result","stopped","iterable","unboundFunction","iterator","iterFn","next","step","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","done","isArray","arg","propertyKey","getOwnPropertyNamesModule","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","id","isExtensible","setMetadata","objectID","weakData","meta","enable","splice","fastKey","getWeakData","onFreeze","$Symbol","SPECIES","defaultConstructor","whitespace","ltrim","RegExp","rtrim","start","end","trim","ignoreCase","multiline","dotAll","unicode","sticky","propertyIsEnumerable","postfix","random","toAbsoluteIndex","IS_INCLUDES","el","fromIndex","includes","indexOf","replacement","feature","detection","normalize","POLYFILL","NATIVE","keys","arraySpeciesConstructor","originalArray","Iterators","ITERATOR","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","V8_VERSION","array","foo","Boolean","preventExtensions","MATCH","isRegExp","setCSSVariable","variableName","documentElement","setProperty","$propertyIsEnumerable","NASHORN_BUG","1","V","IS_PURE","copyright","EXISTS","createElement","usingIterator","iteratorMethod","SAFE_CLOSING","called","iteratorWithReturn","from","SKIP_CLOSING","ITERATION_SUPPORT","addToUnscopables","defineIterator","iterated","kind","Arguments","IS_RIGHT","argumentsLength","memo","left","right","redefineAll","IEEE754","arrayFill","setToStringTag","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","packIEEE754","pack","unpackIEEE754","unpack","packInt8","number","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","count","isLittleEndian","intIndex","bytes","reverse","conversion","NaN","ArrayBufferPrototype","j","testView","$setInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","InternalMetadataModule","iterate","checkCorrectnessOfIteration","common","IS_WEAK","ADDER","NativeConstructor","NativePrototype","fixMethod","nativeMethod","entries","getConstructor","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","clear","setStrong","Wrapper","NewTarget","NewTargetPrototype","$expm1","expm1","exp","x","WEBKIT","__defineSetter__","PromiseCapability","resolve","reject","promise","$$resolve","$$reject","$RegExp","UNSUPPORTED_Y","re","lastIndex","BROKEN_CARET","re1","re2","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","group","str","raw","groups","flags","charsAdded","strCopy","charAt","input","CONVERT_TO_STRING","pos","first","second","position","size","charCodeAt","codeAt","regexpExec","RegExpPrototype","FORCED","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","methods","regexp","arg2","forceStringMethod","$exec","R","speciesConstructor","ordinaryToPrimitive","TO_PRIMITIVE","pref","exoticToPrim","getOwnPropertySymbols","symbol","functionToString","getOwnPropertySymbolsModule","objectKeys","$getOwnPropertyNames","windowNames","getWindowNames","endPos","createIteratorConstructor","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","values","webkit","repeat","IS_END","maxLength","fillString","fillLen","stringFiller","stringLength","fillStr","intMaxLength","Infinity","sign","isFinite","location","defer","channel","port","IS_IOS","IS_NODE","setImmediate","clearImmediate","MessageChannel","Dispatch","counter","queue","run","runner","listener","event","post","postMessage","protocol","host","args","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","error1","error2","whitespaces","jQuery","val","valueOf","ownKeys","names","innerResult","innerError","copyWithin","len","to","inc","flattenIntoArray","original","sourceLen","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","$forEach","STRICT_METHOD","arrayMethodIsStrict","callWithSafeIterationClosing","createProperty","arrayLike","mapfn","mapping","PrototypeOfArrayIteratorPrototype","arrayIterator","$lastIndexOf","lastIndexOf","NEGATIVE_ZERO","searchElement","mergeSort","comparefn","middle","insertionSort","merge","llength","rlength","lindex","rindex","firefox","UA","factories","construct","argsLength","partArgs","internalStateGetterFor","last","define","previous","entry","getEntry","removed","prev","add","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","log","log1p","$parseFloat","parseFloat","trimmedString","$parseInt","parseInt","hex","radix","$assign","assign","A","B","chr","T","TO_ENTRIES","is","y","Promise","flush","head","notify","toggle","node","then","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","parent","exit","enter","createTextNode","observe","characterData","task","newPromiseCapability","promiseCapability","point","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","captures","namedCaptures","tailPos","symbols","ch","capture","toPositiveInteger","ArrayIterationModule","$has","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","classList","DOMTokenListPrototype","url","URL","searchParams","pathname","toJSON","sort","href","URLSearchParams","username","hash","USE_NATIVE_URL","$toString","nativeFetch","NativeRequest","RequestPrototype","Headers","getInternalParamsState","URL_SEARCH_PARAMS","plus","sequences","percentSequence","percentDecode","sequence","decodeURIComponent","deserialize","replacer","serialize","encodeURIComponent","parseSearchParams","query","attributes","shift","updateSearchParams","validateArgumentsLength","passed","required","URLSearchParamsIterator","params","URLSearchParamsConstructor","entryIterator","entryNext","init","updateURL","URLSearchParamsPrototype","append","getAll","found","entriesIndex","sliceIndex","callback","wrapRequestOptions","headers","body","fetch","RequestConstructor","Request","getState","factory","root","svgNS","locationHref","initialDefaultFrame","_useWebWorker","subframeEnabled","idPrefix","expressionsPlugin","isSafari","navigator","cachedColors","bmRnd","bmPow","pow","bmSqrt","sqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface","propertyNames","abs","absArr","createSizedArray","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","flag","styleDiv","top","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","h","v","g","q","RGBtoHSV","addSaturationToRGB","color","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","colorMap","BaseEvent","triggerEvent","eventName","_cbs","callbacks","removeEventListener","createTypedArray","createRegularArray","arr","createNS","createElementNS","createTag","DynamicPropertyContainer","addDynamicProperty","prop","dynamicProperties","container","_isAnimated","iterateDynamicProperties","_mdf","getValue","initDynamicPropertyContainer","getBlendMode","blendModeEnums","0","2","3","4","5","6","7","8","9","10","11","12","13","14","15","lineCapEnum","lineJoinEnum","Matrix","_cos","cos","_sin","sin","_tan","tan","_rnd","reset","props","rotate","angle","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","sy","skew","ax","ay","skewFromAxis","scale","sz","setTransform","e","k","translate","tx","ty","tz","transform","a2","b2","c2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_p","_identityCalculated","a1","b1","c1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","isIdentity","_identity","equals","matr","clone","cloneFromProps","applyToPoint","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","pt","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","pt1","pt2","pt3","p0","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","pool","math","startdenom","significance","overflow","ARC4","keylen","me","width","copy","mixkey","seed","smear","stringseed","tostring","fromCharCode","shortseed","flatten","obj","typ","entropy","nodecrypto","out","crypto","msCrypto","getRandomValues","browser","plugins","Date","screen","autoseed","arc4","prng","int32","quick","double","pass","is_math_call","BezierFactory","ob","nm","beziers","bezEasing","BezierEasing","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","points","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","extendPrototype","sources","destination","sourcePrototype","attr","getDescriptor","createProxyFunction","ProxyFunction","bezFunction","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt4","ptCoord","perc","ptDistance","curveSegments","addedLength","lastPoint","lengthData","bezierLengthPool","newElement","percents","lengths","BezierData","segmentLength","PointData","partial","partialLength","storedData","buildBezierData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","segmentsLengthPool","closed","pathV","pathO","pathI","_length","totalLength","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","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","currTime","getTime","timeToCall","clearTimeout","bez","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","_workerSelf","setupWorker","Worker","Blob","blob","createObjectURL","createWorker","completeLayers","layers","comps","layerData","jLen","kLen","completed","tt","td","hasMask","maskProps","masksProperties","convertPathsToAbsoluteValues","findCompLayers","refId","completeShapes","shapes","completeText","__used","JSON","parse","stringify","ks","checkVersion","minimum","animVersionString","animVersion","minimumVersion","checkText","iterateLayers","textLayer","documentData","animationData","assets","checkChars","chars","pathData","paths","__converted","checkPathProperties","checkColors","iterateShapes","checkShapes","completeClosingShapes","cl","singleShape","moduleOb","__complete","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","response","responseText","load","fullPath","errorCallback","XMLHttpRequest","err","onreadystatechange","readyState","status","send","completeData","payload","animation","onComplete","onError","createProcess","loadAnimation","processId","origin","loadData","completeAnimation","anim","getFontProperties","fontData","styles","fStyle","fWeight","weight","FontManager","emptyChar","w","combinedCharacters","surrogateModifiers","zeroWidthJoiner","setUpNode","font","family","parentNode","setAttribute","fontFamily","innerText","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","createHelper","def","tHelper","fontProps","fFamily","textContent","fClass","getContext","Font","fonts","typekitLoaded","isLoaded","_warned","initTime","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","char","addChars","addFonts","defs","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","rel","sc","helper","cache","getCharData","console","warn","getFontByName","fName","measureText","fontName","doubleSize","getComputedTextLength","singleSize","loadedCount","PropertyFactory","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","ti","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","quaternionToEuler","omega","cosom","sinom","scale0","scale1","az","aw","bx","by","bz","bw","acos","slerp","createQuaternion","c3","s1","s2","s3","getValueAtCurrentTime","comp","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","processEffectsSequence","elem","globalData","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","st","KeyframedMultidimensionalProperty","arrLen","getProp","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","or","sk","sa","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","frameRate","autoOriented","v1","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","ShapePath","_maxLength","setPathData","setLength","pointPool","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","cnt","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shape1","shape2","shapesEqual","shapePool","releaseShapes","addShape","ShapeProperty","shapeCollectionPool","newShapeCollection","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","ir","convertToPath","convertStarToPath","convertPolygonToPath","os","rad","roundness","perimSegment","numPts","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","RoundCornersModifier","PuckerAndBloatModifier","RepeaterModifier","ShapeCollection","DashProperty","renderer","dataProps","dashStr","dashArray","dashoffset","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","initModifierProperties","addShapeToModifier","shape","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segments","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","release","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","pop","addPaths","newPaths","addSegment","shapePath","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","segment","rd","processPath","clonedPath","currentV","currentI","currentO","closerV","distance","newPosPerc","amount","centerPoint","pathLength","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","hasReloaded","copies","ix","reloadShapes","elems","transformData","op","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","comparePoints","buildShapeString","pathNodes","_o","_i","shapeString","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","ImagePreloader","proxyImage","canvas","height","ctx","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","u","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","createFootageData","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","destroy","getAsset","createImgData","crossOrigin","createImageData","setAttributeNS","_elementHelper","setCacheType","elementHelper","featureSupport","maskType","filtersFactory","createFilter","filId","skipCoordinates","fil","createAlphaToLuminanceFilter","feColorMatrix","TextAnimatorProperty","textData","renderType","_hasMaskedPath","_frameId","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","sw","fc","fh","fs","fb","TextSelectorProp","getTextSelectorProp","LetterProps","TextProperty","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","of","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","searchProperties","maskManager","getMaskProperty","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","mask","animators","matrixHelper","mHelper","renderedLettersCount","letters","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","currentLine","letterM","letterP","defaultPropsArray","animatorJustifyOffset","animatorFirstCharOffset","justifyOffsetMult","isNewLine","getMult","anIndexes","totalChars","line","extra","an","animatorOffset","rot","atan","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","text","charCode","charactersArray","shouldCombine","substr","newLineFlag","charData","fontManager","anchorGrouping","currentSize","currentPos","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","animatorData","letterData","based","indexes","rn","newInd","currentInd","updateDocumentData","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","poolFactory","initialLength","_create","_release","pooling","cloned","shapeCollection","markerParser","parsePayloadLines","lines","keysCount","Error","_markers","markers","_marker","markerData","time","tm","duration","dr","cm","_","__","BaseRenderer","SVGRenderer","animationItem","config","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","maskElement","layerElement","renderConfig","preserveAspectRatio","imagePreserveAspectRatio","contentVisibility","progressiveLoad","hideOnTransparent","viewBoxOnly","viewBoxSize","className","focusable","filterSize","pendingElements","destroyed","rendererType","CanvasRenderer","clearCanvas","context","dpr","devicePixelRatio","currentGlobalAlpha","contextData","CVContextData","transformMat","HybridRenderer","threeDElements","camera","supports3d","MaskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","layerId","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","addRenderableComponent","HierarchyElement","FrameElement","TransformElement","RenderableElement","RenderableDOMElement","ProcessedElement","SVGStyleData","level","lvl","hd","pElem","msElem","SVGShapeData","transformers","caches","lStr","SVGTransformData","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","checkLayers","num","ip","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","AudioElement","FootageElement","buildAllItems","includeLayers","newLayers","setProjectInterface","pInterface","projectInterface","initItems","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","searchExtraCompositions","xt","initExpressions","registerComposition","setupGlobalData","animData","fontsContainer","getAssetData","imageLoader","imagePreloader","audioController","fr","compSize","NullElement","SVGShapeElement","SVGTextLottieElement","IImageElement","SVGCompElement","ISolidElement","configAnimation","maskId","updateContainerSize","appendElementInPos","setMatte","checkParenting","renderFrame","currentFrame","prepareFrame","getBaseElement","nextElement","insertBefore","hide","show","CVShapeElement","CVTextElement","CVImageElement","CVCompElement","CVSolidElement","ctxTransform","cProps","cTr","trProps","canvasContext","ctxOpacity","globalAlpha","cO","restore","save","actionFlag","cArrPos","duplicate","saved","savedOp","blendMode","popped","containerStyle","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","par","fillType","beginPath","closePath","clip","clearRect","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","HShapeElement","HTextElement","HCameraElement","HImageElement","HCompElement","HSolidElement","startPos","perspectiveElem","createThreeDContainer","webkitTransform","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","svg","setup","cWidth","cHeight","webkitPerspective","perspective","floatingContainer","isFirstFrame","finalMat","finalTransform","mProp","getMaskelement","pathString","pathShapeValue","initHierarchy","_isParent","prepareProperties","isVisible","initTransform","_matMdf","_opMdf","ao","renderTransform","globalToLocal","transforms","ptNew","initRenderable","isInRange","hidden","isTransparent","renderableComponents","component","removeRenderableComponent","prepareRenderableFrame","checkLayerLimits","checkTransparency","renderRenderable","sourceRectAtTime","getLayerSize","initElement","initBaseData","initRendererElement","createContainerElements","createRenderableComponents","createContent","baseElement","renderElement","renderInnerContent","innerElem","destroyBaseElement","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","opFill","lc","lj","ml","ms","ost","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","dist","createRenderFunction","ShapeTransformManager","sequenceList","transform_key_count","CVShapeData","transformsManager","styledShapes","styledShape","addTransformSequence","trNodes","BaseElement","SVGBaseElement","IShapeElement","ITextElement","ICompElement","sourceRect","_isPlaying","_canPlay","_currentTime","_placeholder","textSpans","shapesData","stylesList","shapeModifiers","itemsData","processedElements","animatedContents","SVGTintFilter","filterManager","matrixFilter","effectElements","feMergeNode","feMerge","SVGFillFilter","SVGGaussianBlurEffect","feGaussianBlur","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","feOffset","feFlood","feComposite","originalNodeAdded","processSequence","processSequences","getNewKey","checkMasks","layerInterface","LayerExpressionInterface","registerMaskInterface","effectsInterface","EffectsExpressionInterface","createEffectsInterface","registerEffectsInterface","compInterface","CompExpressionInterface","shapeInterface","ShapeExpressionInterface","textInterface","TextExpressionInterface","setBlendMode","blendModeValue","bm","sr","effectsManager","EffectsManager","getType","matteElement","transformedElement","_sizeChanged","gg","layerElementParent","masker","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","ln","cp","clipId","cpGroup","renderableEffectsManager","SVGEffects","addShapeToModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","addProcessedElement","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","timeRemapped","setElements","getElements","destroyElements","pr","volumeValue","FootageInterface","getFootageData","textContainer","buildTextContents","textArray","textContents","currentTextContent","tSpan","usesGlyphs","cachedSpansLength","tElement","justify","textBox","bbox","renderedLetter","textSpan","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","colorBlack","colorWhite","opacity","sigma","dimensions","sigmaX","sigmaY","edgeMode","initialize","groupPath","elemChildren","children","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","ef","filters","CVBaseElement","CVMaskElement","hasMasks","stroke","fill","currentRender","sWidth","fValue","CVEffects","HBaseElement","shapesContainer","currentBBox","textPaths","isMasked","pe","_prevMat","HEffects","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","newLength","currentSavedOp","createElements","globalCompositeOperation","hideElement","showElement","forceRealStack","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","drawImage","moveTo","lineTo","bezierCurveTo","transformHelper","dashResetter","preTransforms","co","wi","da","do","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","strokeStyle","grd","lineCap","lineJoin","miterLimit","setLineDash","lineDashOffset","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","lastFill","lastStroke","lastStrokeW","checkBlendMode","tg","transformedElementStyle","matrixValue","addEffects","backgroundColor","_createBaseContainerElements","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","yMax","bottom","tempBoundingBox","p3","b2ac","t2","calculateF","calculateBoundingBox","currentBoxContains","box","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","strokeWidth","lineHeight","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","Image","imageElem","perspectiveStyle","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","animationManager","registeredAnimations","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","isPaused","subtractPlayingCount","registerAnimation","AnimationItem","setupAnimation","setData","addPlayingCount","activate","nowTime","elapsedTime","advanceTime","setParams","setSpeed","setDirection","togglePause","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","getElementsByTagName","div","resize","goToAndStop","isFrame","freeze","unfreeze","getRegisteredAnimations","animations","currentRawFrame","frameMult","playSpeed","playDirection","playCount","autoplay","loop","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","onSetupError","onSegmentComplete","animType","rendererSettings","autoloadSegments","initialSegment","fileName","trigger","wrapperAttributes","getNamedItem","prerender","loadNextSegment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","updaFrameModifier","waitForFontsLoaded","triggerConfigError","gotoFrame","setSubframe","triggerRenderFrameError","setCurrentRawFrameValue","getMarkerData","markerName","marker","numValue","Number","frameModifier","goToAndPlay","playSegments","nextValue","_isComplete","checkSegments","adjustSegment","setSegment","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","getPath","getDuration","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","ExpressionManager","frames","$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","arr2","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","needsVelocity","_needsRandom","elemType","$bm_transform","effect","thisProperty","valueAtTime","frameDuration","displayStartTime","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","seedrandom","randSeed","substring","posterizeTime","framesPerSecond","hasParent","executeExpression","_value","frameExpressionId","expressionHelpers","searchExpressions","getSpeedAtTime","speed","_cachingAtTime","getStaticValueAtTime","setGroupProperty","propertyGroup","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","current","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","skewAxis","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","propertyIndex","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","propertyGetShapeProp","trims","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","ShapePathInterface","interfaceFunction","_propertyGroup","propertyGroupFactory","PropertyInterface","_name","mn","parentPropertyGroup","propertyName","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","defaultInterfaceFactory","interfaces","numProperties","transformInterface","transformInterfaceFactory","cix","contentsInterfaceFactory","np","ExpressionPropertyInterface","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","_sourceText","_thisLayerFunction","sourceText","stringValue","_prevValue","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","anchorPointDescriptor","TransformExpressionInterface","anchor_point","startTime","MaskManagerInterface","effects","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","pixelAspect","numLayers","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","compositions","_thisProjectFunction","createGroupInterface","groupInterface","createValueInterface","enabled","en","expressionProperty","effectsData","MaskInterface","_mask","_data","_masksInterfaces","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TextExpressionSelectorPropFactory","getValueProxy","total","propertyGetTextProp","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","effectItem","GroupEffect","eff","lottie","setLocationHref","setSubframeRendering","setIDPrefix","prefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","vars","queryString","pair","useWebWorker","__getFactory","scripts","myScript","nativeObjectCreate","getOwnPropertyNamesExternal","defineWellKnownSymbol","HIDDEN","$stringify","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","wrap","$defineProperties","$getOwnPropertySymbols","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","space","$replacer","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","nativeSymbol","desc","$AggregateError","errors","message","errorsArray","AggregateError","at","relativeIndex","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","$every","$filter","$find","SKIPS_HOLES","$findIndex","flat","depthArg","flatMap","ENTRIES","$includes","$indexOf","nativeIndexOf","nativeJoin","ES3_STRINGS","separator","$map","$reduce","CHROME_VERSION","reduce","$reduceRight","reduceRight","nativeReverse","HAS_SPECIES_SUPPORT","nativeSlice","fin","$some","internalSort","FF","IE_OR_EDGE","V8","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","code","itemsLength","arrayLength","getSortCompare","deleteCount","insertCount","actualDeleteCount","actualStart","arrayBufferModule","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","rt","nBits","nativeArrayBufferSlice","viewSource","viewTarget","getYear","getFullYear","setFullYear","setYear","year","yi","yyyy","toGMTString","toUTCString","toISOString","padStart","DatePrototype","nativeDateToISOString","getUTCFullYear","milliseconds","getUTCMilliseconds","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","dateToPrimitive","hint","nativeDateToString","escape","toUpperCase","HAS_INSTANCE","FunctionPrototype","FunctionPrototypeToString","nameRE","low","hi","fix","collection","collectionStrong","$acosh","acosh","MAX_VALUE","$asinh","asinh","$atanh","atanh","cbrt","LOG2E","clz32","$cosh","cosh","fround","EPSILON","EPSILON32","MAX32","MIN32","$abs","$sign","$hypot","hypot","aLen","larg","$imul","imul","xn","yn","xl","yl","LOG10E","log10","log2","sinh","tanh","trunc","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","third","maxCode","digits","NumberWrapper","globalIsFinite","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","thisNumberValue","nativeToFixed","toFixed","acc","multiply","divide","dataToString","fractionDigits","fractDigits","nativeToPrecision","toPrecision","precision","__defineGetter__","$entries","$freeze","fromEntries","FAILS_ON_PRIMITIVES","getOwnPropertyDescriptors","nativeGetPrototypeOf","$isExtensible","$isFrozen","isFrozen","$isSealed","isSealed","nativeKeys","__lookupGetter__","__lookupSetter__","$preventExtensions","$seal","seal","$values","parseFloatImplementation","parseIntImplementation","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","IS_BROWSER","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromiseConstructorPrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","SUBCLASSING","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","INCORRECT_ITERATION","all","isThenable","isReject","notified","chain","reactions","ok","exited","reaction","handler","fail","rejection","onHandleUnhandled","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","capability","$promiseResolve","remaining","alreadyCalled","race","Pebble","allSettled","any","alreadyResolved","alreadyRejected","real","onFinally","isFunction","nativeApply","functionApply","thisArgument","argumentsList","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","Reflect","deleteProperty","isDataDescriptor","receiver","objectGetPrototypeOf","objectIsExtensible","objectPreventExtensions","existingDescriptor","ownDescriptor","objectSetPrototypeOf","getFlags","NativeRegExp","IS_NCG","CORRECT_NEW","BASE_FORCED","RegExpWrapper","pattern","rawFlags","handled","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","named","brackets","ncg","groupid","groupname","SyntaxError","handleNCG","handleDotAll","proxy","objectDefinePropertyModule","regExpFlags","nativeTest","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","codePointAt","notARegExp","correctIsRegExpLogic","$endsWith","endsWith","CORRECT_IS_REGEXP_LOGIC","searchString","endPosition","search","$fromCodePoint","fromCodePoint","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","matcher","res","fullUnicode","matchStr","getRegExpFlags","MATCH_ALL","REGEXP_STRING","regExpBuiltinExec","nativeMatchAll","matchAll","WORKS_WITH_NON_GLOBAL_REGEX","$RegExpStringIterator","$matchAll","flagsValue","$padEnd","padEnd","$padStart","template","rawTemplate","literalSegments","getSubstitution","REPLACE","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","UNSAFE_SUBSTITUTE","searchValue","replaceValue","functionalReplace","results","accumulatedResult","nextSourcePosition","replacerArgs","stringIndexOf","replaceAll","IS_REG_EXP","searchLength","advanceBy","endOfLastMatch","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","callRegExpExec","arrayPush","SPLIT","nativeSplit","internalSplit","limit","lim","lastLength","output","lastLastIndex","separatorCopy","splitter","unicodeMatching","originalExec","$startsWith","startsWith","intLength","intEnd","intStart","$trim","forcedStringTrimMethod","$trimEnd","trimEnd","trimRight","$trimStart","trimStart","trimLeft","createHTML","forcedStringHTMLMethod","big","blink","bold","fixed","fontcolor","fontsize","italics","link","small","strike","sup","createTypedArrayConstructor","$copyWithin","$fill","fromSpeciesAndList","arrayFromConstructorAndList","typedArraySpeciesConstructor","predicate","ArrayIterators","arrayValues","arrayKeys","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","$join","$slice","ACCEPT_INCORRECT_ARGUMENTS","expected","begin","beginIndex","BYTES_PER_ELEMENT","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","arrayJoin","IS_NOT_ARRAY_METHOD","hex2","hex4","unescape","InternalWeakMap","collectionWeak","enforceIternalState","IS_IE11","$WeakMap","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","ArrayIteratorMethods","ArrayValues","scheduler","timeout","boundArgs","EOF","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","getInternalSearchParamsState","getInternalURLState","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","codePoints","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","ipv4","parts","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","serializeHost","ignore0","ipv6","maxIndex","currStart","currLength","findLongestZeroSequence","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","shortenURLsPath","pathSize","isSingleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","base","bufferCodePoints","failure","seenAt","seenBracket","seenPasswordToken","fragment","codePoint","encodedCodePoints","URLConstructor","baseState","urlString","searchParamsState","serializeURL","getOrigin","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","nativeRevokeObjectURL","revokeObjectURL","regexNonASCII","regexSeparators","OVERFLOW_ERROR","stringFromCharCode","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","encode","inputLength","ucs2decode","bias","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","label","encoded","labels","runtime","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Element","matches","msMatchesSelector","webkitMatchesSelector","closest","parentElement","nodeType","DigifixGeneral","mobileMenuOpen","scrollLockPosition","setupCSSVariables","setupMenu","hamburgerToggle","querySelector","preventDefault","digifixScrollSpy","variables","scrollPosition","scrollTo","fullWindowHeight","innerHeight","halfWindowHeight","mobileHeaderHeight","outerHeight","desktopHeaderHeight","DigifixJobListing","wp","blocks","jobListingItems","slideTarget","slideTimeout","isGutenberg","slideToggle","click","acf","addAction","$elem","blockDetails","DigifixScrollSpy","headerDesktop","headerMobile","elementsWithBackgroundColor","headerHeight","setupMenuColorChangingElements","on","handleMenuColorOnScroll","addClass","oldScrollPos","newScrollPos","scrollTop","removeClass","class","menuColor","classAndColor","each","offsetTop","lastElement","menuClass","hasClass","DigifixBodymovin","animatedElements","isPlayingReverse","animationPath","getAttribute","animatedElement","scrollDirection","contains"],"mappings":"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R,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KAC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","file":"bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 168);\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = uid('TYPED_ARRAY_CONSTRUCTOR');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || has(TypedArrayConstructorsList, klass)\n || has(BigIntArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return has(TypedArrayConstructorsList, klass)\n || has(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (setPrototypeOf && !isPrototypeOf.call(TypedArray, C)) {\n throw TypeError('Target is not a typed array constructor');\n } return C;\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR, Constructor);\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","var isSymbol = require('../internals/is-symbol');\n\nmodule.exports = function (argument) {\n if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* 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 requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + toString(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","module.exports = false;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? 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 ? ObjectPrototype : null;\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\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","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","/* eslint-disable no-proto -- safe */\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isInteger = require('../internals/is-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPropertyKey = require('../internals/to-property-key');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && !isSymbol(key)\n && key in target\n && isInteger(+key)\n && key >= 0;\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n key = toPropertyKey(key);\n return isTypedArrayIndex(target, key)\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n key = toPropertyKey(key);\n if (isTypedArrayIndex(target, key)\n && isObject(descriptor)\n && has(descriptor, 'value')\n && !has(descriptor, 'get')\n && !has(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!has(descriptor, 'writable') || descriptor.writable)\n && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_CONSTRUCTOR, TypedArrayConstructor);\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : String(key);\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\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","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var $ = require('../internals/export');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\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 setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\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 setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = [].splice;\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice.call(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var getBuiltIn = require('../internals/get-built-in');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return typeof $Symbol == 'function' && Object(it) instanceof $Symbol;\n};\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","module.exports = {};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($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 -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","module.exports = {};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","const setCSSVariable = (variableName, value) => {\n document.documentElement.style.setProperty(`--${variableName}`, value);\n};\n\nexport default setCSSVariable;","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.17.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(it) : usingIterator;\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n /* eslint-disable no-new -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n /* eslint-enable no-new -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","// eslint-disable-next-line es/no-math-expm1 -- safe\nvar $expm1 = Math.expm1;\nvar exp = Math.exp;\n\n// `Math.expm1` method implementation\n// https://tc39.es/ecma262/#sec-math.expm1\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : exp(x) - 1;\n} : $expm1;\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\n// Forced replacement object prototype accessors methods\nmodule.exports = IS_PURE || !fails(function () {\n // This feature detection crashes old WebKit\n // https://github.com/zloirock/core-js/issues/232\n if (WEBKIT && WEBKIT < 535) return;\n var key = Math.random();\n // In FF throws only define methods\n // eslint-disable-next-line no-undef, no-useless-call -- required for testing\n __defineSetter__.call(null, key, function () { /* empty */ });\n delete global[key];\n});\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nexports.UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeExec = RegExp.prototype.exec;\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n // eslint-disable-next-line max-statements -- TODO\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = patchedExec.call(raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = str.slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str.charAt(re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","var toInteger = require('../internals/to-integer');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.codePointAt` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n redefine(String.prototype, KEY, methods[0]);\n redefine(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","var ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\n\n// a part of `TypedArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#typedarray-species-create\nmodule.exports = function (originalArray) {\n return aTypedArrayConstructor(speciesConstructor(originalArray, originalArray[TYPED_ARRAY_CONSTRUCTOR]));\n};\n","var isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = input[TO_PRIMITIVE];\n var result;\n if (exoticToPrim !== undefined) {\n if (pref === undefined) pref = 'default';\n result = exoticToPrim.call(input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var global = require('../internals/global');\n\nmodule.exports = function (key, value) {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\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 $getOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = toString(requireObjectCoercible($this));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : toString(fillString);\n var intMaxLength = toLength(maxLength);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","// `Math.sign` method implementation\n// https://tc39.es/ecma262/#sec-math.sign\n// eslint-disable-next-line es/no-math-sign -- safe\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `Number.isInteger` method implementation\n// https://tc39.es/ecma262/#sec-number.isinteger\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins -- safe\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var argumentsLength = arguments.length;\n var i = 1;\n while (argumentsLength > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var fails = require('./fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","/* eslint-disable no-new -- required for testing */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","module.exports = jQuery;","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var isObject = require('../internals/is-object');\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (pref !== 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && 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 ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = iterator['return'];\n if (innerResult === undefined) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = innerResult.call(iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n// eslint-disable-next-line es/no-array-prototype-copywithin -- safe\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (typeof IteratorPrototype[ITERATOR] !== 'function') {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\n/* eslint-disable es/no-array-prototype-lastindexof -- safe */\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar min = Math.min;\nvar $lastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $lastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : $lastIndexOf;\n","// TODO: use something more complex like timsort?\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n mergeSort(array.slice(0, middle), comparefn),\n mergeSort(array.slice(middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n var result = [];\n\n while (lindex < llength || rindex < rlength) {\n if (lindex < llength && rindex < rlength) {\n result.push(comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]);\n } else {\n result.push(lindex < llength ? left[lindex++] : right[rindex++]);\n }\n } return result;\n};\n\nmodule.exports = mergeSort;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func -- we have no proper alternatives, IE8- only\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","var log = Math.log;\n\n// `Math.log1p` method implementation\n// https://tc39.es/ecma262/#sec-math.log1p\n// eslint-disable-next-line es/no-math-log1p -- safe\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log(1 + x);\n};\n","var global = require('../internals/global');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseFloat = global.parseFloat;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var global = require('../internals/global');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar hex = /^[+-]?0[Xx]/;\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));\n} : $parseInt;\n","var valueOf = 1.0.valueOf;\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n return valueOf.call(value);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var has = require('../internals/has');\n\nmodule.exports = function (descriptor) {\n return descriptor !== undefined && (has(descriptor, 'value') || has(descriptor, 'writable'));\n};\n","var fails = require('./fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line unicorn/no-unsafe-regex -- safe\nmodule.exports = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","var toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar bind = require('../internals/function-bind-context');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n O = [];\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","'use strict';\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar $has = require('../internals/has');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) this.entries.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n redefineAll(C.prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && $has(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && $has(data, state.id);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return C;\n }\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar nativeFetch = getBuiltIn('fetch');\nvar NativeRequest = getBuiltIn('Request');\nvar RequestPrototype = NativeRequest && NativeRequest.prototype;\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = getIterator(init, iteratorMethod);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: $toString(init[key]) });\n } else {\n parseSearchParams(\n entries,\n typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : $toString(init)\n );\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: $toString(name), value: $toString(value) });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && typeof Headers == 'function') {\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (typeof nativeFetch == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (typeof NativeRequest == 'function') {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestConstructor, 'Request');\n return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","(typeof navigator !== \"undefined\") && (function(root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(function() {\n return factory(root);\n });\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory(root);\n } else {\n root.lottie = factory(root);\n root.bodymovin = root.lottie;\n }\n}((window || {}), function(window) {\n\t/* global locationHref:writable, animationManager, subframeEnabled:writable, defaultCurveSegments:writable, roundValues,\r\nexpressionsPlugin:writable, PropertyFactory, ShapePropertyFactory, Matrix, idPrefix:writable, _useWebWorker:writable */\r\n/* exported locationHref, subframeEnabled, expressionsPlugin, idPrefix, _useWebWorker */\r\n\r\n'use strict';\r\n\r\n/* exported svgNS, locationHref, initialDefaultFrame, _useWebWorker */\r\n\r\nvar svgNS = 'http://www.w3.org/2000/svg';\r\n\r\nvar locationHref = '';\r\n\r\nvar initialDefaultFrame = -999999;\r\n\r\nvar _useWebWorker = false;\r\n\r\n/* global createSizedArray */\r\n/* exported subframeEnabled, expressionsPlugin, isSafari, cachedColors, bmPow, bmSqrt, bmFloor, bmMax, bmMin, ProjectInterface,\r\ndefaultCurveSegments, degToRads, roundCorner, bmRnd, styleDiv, BMEnterFrameEvent, BMCompleteEvent, BMCompleteLoopEvent,\r\nBMSegmentStartEvent, BMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, BMAnimationConfigErrorEvent, createElementID,\r\naddSaturationToRGB, addBrightnessToRGB, addHueToRGB, rgbToHex */\r\n\r\nvar subframeEnabled = true;\r\nvar idPrefix = '';\r\nvar expressionsPlugin;\r\nvar isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\nvar cachedColors = {};\r\nvar bmRnd;\r\nvar bmPow = Math.pow;\r\nvar bmSqrt = Math.sqrt;\r\nvar bmFloor = Math.floor;\r\nvar bmMax = Math.max;\r\nvar bmMin = Math.min;\r\n\r\nvar BMMath = {};\r\n(function () {\r\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'];\r\n var i;\r\n var len = propertyNames.length;\r\n for (i = 0; i < len; i += 1) {\r\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\r\n }\r\n}());\r\n\r\nfunction ProjectInterface() { return {}; }\r\n\r\nBMMath.random = Math.random;\r\nBMMath.abs = function (val) {\r\n var tOfVal = typeof val;\r\n if (tOfVal === 'object' && val.length) {\r\n var absArr = createSizedArray(val.length);\r\n var i;\r\n var len = val.length;\r\n for (i = 0; i < len; i += 1) {\r\n absArr[i] = Math.abs(val[i]);\r\n }\r\n return absArr;\r\n }\r\n return Math.abs(val);\r\n};\r\nvar defaultCurveSegments = 150;\r\nvar degToRads = Math.PI / 180;\r\nvar roundCorner = 0.5519;\r\n\r\nfunction roundValues(flag) {\r\n if (flag) {\r\n bmRnd = Math.round;\r\n } else {\r\n bmRnd = function (val) {\r\n return val;\r\n };\r\n }\r\n}\r\nroundValues(false);\r\n\r\nfunction styleDiv(element) {\r\n element.style.position = 'absolute';\r\n element.style.top = 0;\r\n element.style.left = 0;\r\n element.style.display = 'block';\r\n element.style.transformOrigin = '0 0';\r\n element.style.webkitTransformOrigin = '0 0';\r\n element.style.backfaceVisibility = 'visible';\r\n element.style.webkitBackfaceVisibility = 'visible';\r\n element.style.transformStyle = 'preserve-3d';\r\n element.style.webkitTransformStyle = 'preserve-3d';\r\n element.style.mozTransformStyle = 'preserve-3d';\r\n}\r\n\r\nfunction BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\r\n this.type = type;\r\n this.currentTime = currentTime;\r\n this.totalTime = totalTime;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n}\r\n\r\nfunction BMCompleteEvent(type, frameMultiplier) {\r\n this.type = type;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n}\r\n\r\nfunction BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\r\n this.type = type;\r\n this.currentLoop = currentLoop;\r\n this.totalLoops = totalLoops;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n}\r\n\r\nfunction BMSegmentStartEvent(type, firstFrame, totalFrames) {\r\n this.type = type;\r\n this.firstFrame = firstFrame;\r\n this.totalFrames = totalFrames;\r\n}\r\n\r\nfunction BMDestroyEvent(type, target) {\r\n this.type = type;\r\n this.target = target;\r\n}\r\n\r\nfunction BMRenderFrameErrorEvent(nativeError, currentTime) {\r\n this.type = 'renderFrameError';\r\n this.nativeError = nativeError;\r\n this.currentTime = currentTime;\r\n}\r\n\r\nfunction BMConfigErrorEvent(nativeError) {\r\n this.type = 'configError';\r\n this.nativeError = nativeError;\r\n}\r\n\r\nfunction BMAnimationConfigErrorEvent(type, nativeError) {\r\n this.type = type;\r\n this.nativeError = nativeError;\r\n}\r\n\r\nvar createElementID = (function () {\r\n var _count = 0;\r\n return function createID() {\r\n _count += 1;\r\n return idPrefix + '__lottie_element_' + _count;\r\n };\r\n}());\r\n\r\nfunction HSVtoRGB(h, s, v) {\r\n var r;\r\n var g;\r\n var b;\r\n var i;\r\n var f;\r\n var p;\r\n var q;\r\n var t;\r\n i = Math.floor(h * 6);\r\n f = h * 6 - i;\r\n p = v * (1 - s);\r\n q = v * (1 - f * s);\r\n t = v * (1 - (1 - f) * s);\r\n switch (i % 6) {\r\n case 0: r = v; g = t; b = p; break;\r\n case 1: r = q; g = v; b = p; break;\r\n case 2: r = p; g = v; b = t; break;\r\n case 3: r = p; g = q; b = v; break;\r\n case 4: r = t; g = p; b = v; break;\r\n case 5: r = v; g = p; b = q; break;\r\n default: break;\r\n }\r\n return [r,\r\n g,\r\n b];\r\n}\r\n\r\nfunction RGBtoHSV(r, g, b) {\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var d = max - min;\r\n var h;\r\n var s = (max === 0 ? 0 : d / max);\r\n var v = max / 255;\r\n\r\n switch (max) {\r\n case min: h = 0; break;\r\n case r: h = (g - b) + d * (g < b ? 6 : 0); h /= 6 * d; break;\r\n case g: h = (b - r) + d * 2; h /= 6 * d; break;\r\n case b: h = (r - g) + d * 4; h /= 6 * d; break;\r\n default: break;\r\n }\r\n\r\n return [\r\n h,\r\n s,\r\n v,\r\n ];\r\n}\r\n\r\nfunction addSaturationToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[1] += offset;\r\n if (hsv[1] > 1) {\r\n hsv[1] = 1;\r\n } else if (hsv[1] <= 0) {\r\n hsv[1] = 0;\r\n }\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n}\r\n\r\nfunction addBrightnessToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[2] += offset;\r\n if (hsv[2] > 1) {\r\n hsv[2] = 1;\r\n } else if (hsv[2] < 0) {\r\n hsv[2] = 0;\r\n }\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n}\r\n\r\nfunction addHueToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[0] += offset / 360;\r\n if (hsv[0] > 1) {\r\n hsv[0] -= 1;\r\n } else if (hsv[0] < 0) {\r\n hsv[0] += 1;\r\n }\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n}\r\n\r\nvar rgbToHex = (function () {\r\n var colorMap = [];\r\n var i;\r\n var hex;\r\n for (i = 0; i < 256; i += 1) {\r\n hex = i.toString(16);\r\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\r\n }\r\n\r\n return function (r, g, b) {\r\n if (r < 0) {\r\n r = 0;\r\n }\r\n if (g < 0) {\r\n g = 0;\r\n }\r\n if (b < 0) {\r\n b = 0;\r\n }\r\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\r\n };\r\n}());\r\n\r\nfunction BaseEvent() {}\r\nBaseEvent.prototype = {\r\n triggerEvent: function (eventName, args) {\r\n if (this._cbs[eventName]) {\r\n var callbacks = this._cbs[eventName];\r\n for (var i = 0; i < callbacks.length; i += 1) {\r\n callbacks[i](args);\r\n }\r\n }\r\n },\r\n addEventListener: function (eventName, callback) {\r\n if (!this._cbs[eventName]) {\r\n this._cbs[eventName] = [];\r\n }\r\n this._cbs[eventName].push(callback);\r\n\r\n return function () {\r\n this.removeEventListener(eventName, callback);\r\n }.bind(this);\r\n },\r\n removeEventListener: function (eventName, callback) {\r\n if (!callback) {\r\n this._cbs[eventName] = null;\r\n } else if (this._cbs[eventName]) {\r\n var i = 0;\r\n var len = this._cbs[eventName].length;\r\n while (i < len) {\r\n if (this._cbs[eventName][i] === callback) {\r\n this._cbs[eventName].splice(i, 1);\r\n i -= 1;\r\n len -= 1;\r\n }\r\n i += 1;\r\n }\r\n if (!this._cbs[eventName].length) {\r\n this._cbs[eventName] = null;\r\n }\r\n }\r\n },\r\n};\r\n\r\n/* exported createTypedArray, createSizedArray */\r\n\r\nvar createTypedArray = (function () {\r\n function createRegularArray(type, len) {\r\n var i = 0;\r\n var arr = [];\r\n var value;\r\n switch (type) {\r\n case 'int16':\r\n case 'uint8c':\r\n value = 1;\r\n break;\r\n default:\r\n value = 1.1;\r\n break;\r\n }\r\n for (i = 0; i < len; i += 1) {\r\n arr.push(value);\r\n }\r\n return arr;\r\n }\r\n function createTypedArrayFactory(type, len) {\r\n if (type === 'float32') {\r\n return new Float32Array(len);\r\n } if (type === 'int16') {\r\n return new Int16Array(len);\r\n } if (type === 'uint8c') {\r\n return new Uint8ClampedArray(len);\r\n }\r\n return createRegularArray(type, len);\r\n }\r\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\r\n return createTypedArrayFactory;\r\n }\r\n return createRegularArray;\r\n}());\r\n\r\nfunction createSizedArray(len) {\r\n return Array.apply(null, { length: len });\r\n}\r\n\r\n/* global svgNS */\r\n/* exported createNS */\r\n\r\nfunction createNS(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElementNS(svgNS, type);\r\n}\r\n\r\n/* exported createTag */\r\n\r\nfunction createTag(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElement(type);\r\n}\r\n\r\nfunction DynamicPropertyContainer() {}\r\nDynamicPropertyContainer.prototype = {\r\n addDynamicProperty: function (prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n this.container.addDynamicProperty(this);\r\n this._isAnimated = true;\r\n }\r\n },\r\n iterateDynamicProperties: function () {\r\n this._mdf = false;\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n if (this.dynamicProperties[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n },\r\n initDynamicPropertyContainer: function (container) {\r\n this.container = container;\r\n this.dynamicProperties = [];\r\n this._mdf = false;\r\n this._isAnimated = false;\r\n },\r\n};\r\n\r\n/* exported getBlendMode */\r\n\r\nvar getBlendMode = (function () {\r\n var blendModeEnums = {\r\n 0: 'source-over',\r\n 1: 'multiply',\r\n 2: 'screen',\r\n 3: 'overlay',\r\n 4: 'darken',\r\n 5: 'lighten',\r\n 6: 'color-dodge',\r\n 7: 'color-burn',\r\n 8: 'hard-light',\r\n 9: 'soft-light',\r\n 10: 'difference',\r\n 11: 'exclusion',\r\n 12: 'hue',\r\n 13: 'saturation',\r\n 14: 'color',\r\n 15: 'luminosity',\r\n };\r\n\r\n return function (mode) {\r\n return blendModeEnums[mode] || '';\r\n };\r\n}());\r\n\r\n/* exported lineCapEnum, lineJoinEnum */\r\n\r\nvar lineCapEnum = {\r\n 1: 'butt',\r\n 2: 'round',\r\n 3: 'square',\r\n};\r\n\r\nvar lineJoinEnum = {\r\n 1: 'miter',\r\n 2: 'round',\r\n 3: 'bevel',\r\n};\r\n\r\n/* global createTypedArray */\r\n\r\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 */\r\n\r\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 */\r\n\r\nvar Matrix = (function () {\r\n var _cos = Math.cos;\r\n var _sin = Math.sin;\r\n var _tan = Math.tan;\r\n var _rnd = Math.round;\r\n\r\n function reset() {\r\n this.props[0] = 1;\r\n this.props[1] = 0;\r\n this.props[2] = 0;\r\n this.props[3] = 0;\r\n this.props[4] = 0;\r\n this.props[5] = 1;\r\n this.props[6] = 0;\r\n this.props[7] = 0;\r\n this.props[8] = 0;\r\n this.props[9] = 0;\r\n this.props[10] = 1;\r\n this.props[11] = 0;\r\n this.props[12] = 0;\r\n this.props[13] = 0;\r\n this.props[14] = 0;\r\n this.props[15] = 1;\r\n return this;\r\n }\r\n\r\n function rotate(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateX(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateY(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateZ(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function shear(sx, sy) {\r\n return this._t(1, sy, sx, 1, 0, 0);\r\n }\r\n\r\n function skew(ax, ay) {\r\n return this.shear(_tan(ax), _tan(ay));\r\n }\r\n\r\n function skewFromAxis(ax, angle) {\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)\r\n ._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)\r\n ._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\r\n }\r\n\r\n function scale(sx, sy, sz) {\r\n if (!sz && sz !== 0) {\r\n sz = 1;\r\n }\r\n if (sx === 1 && sy === 1 && sz === 1) {\r\n return this;\r\n }\r\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\r\n this.props[0] = a;\r\n this.props[1] = b;\r\n this.props[2] = c;\r\n this.props[3] = d;\r\n this.props[4] = e;\r\n this.props[5] = f;\r\n this.props[6] = g;\r\n this.props[7] = h;\r\n this.props[8] = i;\r\n this.props[9] = j;\r\n this.props[10] = k;\r\n this.props[11] = l;\r\n this.props[12] = m;\r\n this.props[13] = n;\r\n this.props[14] = o;\r\n this.props[15] = p;\r\n return this;\r\n }\r\n\r\n function translate(tx, ty, tz) {\r\n tz = tz || 0;\r\n if (tx !== 0 || ty !== 0 || tz !== 0) {\r\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\r\n }\r\n return this;\r\n }\r\n\r\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\r\n var _p = this.props;\r\n\r\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) {\r\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\r\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\r\n _p[12] = _p[12] * a2 + _p[15] * m2;\r\n _p[13] = _p[13] * f2 + _p[15] * n2;\r\n _p[14] = _p[14] * k2 + _p[15] * o2;\r\n _p[15] *= p2;\r\n // }\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n var a1 = _p[0];\r\n var b1 = _p[1];\r\n var c1 = _p[2];\r\n var d1 = _p[3];\r\n var e1 = _p[4];\r\n var f1 = _p[5];\r\n var g1 = _p[6];\r\n var h1 = _p[7];\r\n var i1 = _p[8];\r\n var j1 = _p[9];\r\n var k1 = _p[10];\r\n var l1 = _p[11];\r\n var m1 = _p[12];\r\n var n1 = _p[13];\r\n var o1 = _p[14];\r\n var p1 = _p[15];\r\n\r\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\r\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\r\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\r\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\r\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\r\n\r\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\r\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\r\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\r\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\r\n\r\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\r\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\r\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\r\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\r\n\r\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\r\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\r\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\r\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\r\n\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n function isIdentity() {\r\n if (!this._identityCalculated) {\r\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);\r\n this._identityCalculated = true;\r\n }\r\n return this._identity;\r\n }\r\n\r\n function equals(matr) {\r\n var i = 0;\r\n while (i < 16) {\r\n if (matr.props[i] !== this.props[i]) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n return true;\r\n }\r\n\r\n function clone(matr) {\r\n var i;\r\n for (i = 0; i < 16; i += 1) {\r\n matr.props[i] = this.props[i];\r\n }\r\n return matr;\r\n }\r\n\r\n function cloneFromProps(props) {\r\n var i;\r\n for (i = 0; i < 16; i += 1) {\r\n this.props[i] = props[i];\r\n }\r\n }\r\n\r\n function applyToPoint(x, y, z) {\r\n return {\r\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\r\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\r\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14],\r\n };\r\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 }; */\r\n }\r\n function applyToX(x, y, z) {\r\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\r\n }\r\n function applyToY(x, y, z) {\r\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\r\n }\r\n function applyToZ(x, y, z) {\r\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\r\n }\r\n\r\n function getInverseMatrix() {\r\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\r\n var a = this.props[5] / determinant;\r\n var b = -this.props[1] / determinant;\r\n var c = -this.props[4] / determinant;\r\n var d = this.props[0] / determinant;\r\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\r\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\r\n var inverseMatrix = new Matrix();\r\n inverseMatrix.props[0] = a;\r\n inverseMatrix.props[1] = b;\r\n inverseMatrix.props[4] = c;\r\n inverseMatrix.props[5] = d;\r\n inverseMatrix.props[12] = e;\r\n inverseMatrix.props[13] = f;\r\n return inverseMatrix;\r\n }\r\n\r\n function inversePoint(pt) {\r\n var inverseMatrix = this.getInverseMatrix();\r\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\r\n }\r\n\r\n function inversePoints(pts) {\r\n var i;\r\n var len = pts.length;\r\n var retPts = [];\r\n for (i = 0; i < len; i += 1) {\r\n retPts[i] = inversePoint(pts[i]);\r\n }\r\n return retPts;\r\n }\r\n\r\n function applyToTriplePoints(pt1, pt2, pt3) {\r\n var arr = createTypedArray('float32', 6);\r\n if (this.isIdentity()) {\r\n arr[0] = pt1[0];\r\n arr[1] = pt1[1];\r\n arr[2] = pt2[0];\r\n arr[3] = pt2[1];\r\n arr[4] = pt3[0];\r\n arr[5] = pt3[1];\r\n } else {\r\n var p0 = this.props[0];\r\n var p1 = this.props[1];\r\n var p4 = this.props[4];\r\n var p5 = this.props[5];\r\n var p12 = this.props[12];\r\n var p13 = this.props[13];\r\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\r\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\r\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\r\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\r\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\r\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\r\n }\r\n return arr;\r\n }\r\n\r\n function applyToPointArray(x, y, z) {\r\n var arr;\r\n if (this.isIdentity()) {\r\n arr = [x, y, z];\r\n } else {\r\n arr = [\r\n x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\r\n x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\r\n x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14],\r\n ];\r\n }\r\n return arr;\r\n }\r\n\r\n function applyToPointStringified(x, y) {\r\n if (this.isIdentity()) {\r\n return x + ',' + y;\r\n }\r\n var _p = this.props;\r\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;\r\n }\r\n\r\n function toCSS() {\r\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.\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var i = 0;\r\n var props = this.props;\r\n var cssValue = 'matrix3d(';\r\n var v = 10000;\r\n while (i < 16) {\r\n cssValue += _rnd(props[i] * v) / v;\r\n cssValue += i === 15 ? ')' : ',';\r\n i += 1;\r\n }\r\n return cssValue;\r\n }\r\n\r\n function roundMatrixProperty(val) {\r\n var v = 10000;\r\n if ((val < 0.000001 && val > 0) || (val > -0.000001 && val < 0)) {\r\n return _rnd(val * v) / v;\r\n }\r\n return val;\r\n }\r\n\r\n function to2dCSS() {\r\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.\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var props = this.props;\r\n var _a = roundMatrixProperty(props[0]);\r\n var _b = roundMatrixProperty(props[1]);\r\n var _c = roundMatrixProperty(props[4]);\r\n var _d = roundMatrixProperty(props[5]);\r\n var _e = roundMatrixProperty(props[12]);\r\n var _f = roundMatrixProperty(props[13]);\r\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\r\n }\r\n\r\n return function () {\r\n this.reset = reset;\r\n this.rotate = rotate;\r\n this.rotateX = rotateX;\r\n this.rotateY = rotateY;\r\n this.rotateZ = rotateZ;\r\n this.skew = skew;\r\n this.skewFromAxis = skewFromAxis;\r\n this.shear = shear;\r\n this.scale = scale;\r\n this.setTransform = setTransform;\r\n this.translate = translate;\r\n this.transform = transform;\r\n this.applyToPoint = applyToPoint;\r\n this.applyToX = applyToX;\r\n this.applyToY = applyToY;\r\n this.applyToZ = applyToZ;\r\n this.applyToPointArray = applyToPointArray;\r\n this.applyToTriplePoints = applyToTriplePoints;\r\n this.applyToPointStringified = applyToPointStringified;\r\n this.toCSS = toCSS;\r\n this.to2dCSS = to2dCSS;\r\n this.clone = clone;\r\n this.cloneFromProps = cloneFromProps;\r\n this.equals = equals;\r\n this.inversePoints = inversePoints;\r\n this.inversePoint = inversePoint;\r\n this.getInverseMatrix = getInverseMatrix;\r\n this._t = this.transform;\r\n this.isIdentity = isIdentity;\r\n this._identity = true;\r\n this._identityCalculated = false;\r\n\r\n this.props = createTypedArray('float32', 16);\r\n this.reset();\r\n };\r\n}());\r\n\r\n/* eslint-disable */\r\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 */\r\n\r\n(function (pool, math) {\r\n//\r\n// The following constants are related to IEEE 754 limits.\r\n//\r\n var global = this,\r\n width = 256, // each RC4 output is 0 <= x < 256\r\n chunks = 6, // at least six RC4 outputs for each double\r\n digits = 52, // there are 52 significant digits in a double\r\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\r\n startdenom = math.pow(width, chunks),\r\n significance = math.pow(2, digits),\r\n overflow = significance * 2,\r\n mask = width - 1,\r\n nodecrypto; // node.js crypto module, initialized at the bottom.\r\n\r\n//\r\n// seedrandom()\r\n// This is the seedrandom function described above.\r\n//\r\n function seedrandom(seed, options, callback) {\r\n var key = [];\r\n options = (options === true) ? { entropy: true } : (options || {});\r\n\r\n // Flatten the seed string or build one from local entropy if needed.\r\n var shortseed = mixkey(flatten(\r\n options.entropy ? [seed, tostring(pool)] :\r\n (seed === null) ? autoseed() : seed, 3), key);\r\n\r\n // Use the seed to initialize an ARC4 generator.\r\n var arc4 = new ARC4(key);\r\n\r\n // This function returns a random double in [0, 1) that contains\r\n // randomness in every bit of the mantissa of the IEEE 754 value.\r\n var prng = function() {\r\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\r\n d = startdenom, // and denominator d = 2 ^ 48.\r\n x = 0; // and no 'extra last byte'.\r\n while (n < significance) { // Fill up all significant digits by\r\n n = (n + x) * width; // shifting numerator and\r\n d *= width; // denominator and generating a\r\n x = arc4.g(1); // new least-significant-byte.\r\n }\r\n while (n >= overflow) { // To avoid rounding up, before adding\r\n n /= 2; // last byte, shift everything\r\n d /= 2; // right using integer math until\r\n x >>>= 1; // we have exactly the desired bits.\r\n }\r\n return (n + x) / d; // Form the number within [0, 1).\r\n };\r\n\r\n prng.int32 = function() { return arc4.g(4) | 0; };\r\n prng.quick = function() { return arc4.g(4) / 0x100000000; };\r\n prng.double = prng;\r\n\r\n // Mix the randomness into accumulated entropy.\r\n mixkey(tostring(arc4.S), pool);\r\n\r\n // Calling convention: what to return as a function of prng, seed, is_math.\r\n return (options.pass || callback ||\r\n function(prng, seed, is_math_call, state) {\r\n if (state) {\r\n // Load the arc4 state from the given state if it has an S array.\r\n if (state.S) { copy(state, arc4); }\r\n // Only provide the .state method if requested via options.state.\r\n prng.state = function() { return copy(arc4, {}); };\r\n }\r\n\r\n // If called as a method of Math (Math.seedrandom()), mutate\r\n // Math.random because that is how seedrandom.js has worked since v1.0.\r\n if (is_math_call) { math[rngname] = prng; return seed; }\r\n\r\n // Otherwise, it is a newer calling convention, so return the\r\n // prng directly.\r\n else return prng;\r\n })(\r\n prng,\r\n shortseed,\r\n 'global' in options ? options.global : (this == math),\r\n options.state);\r\n }\r\n math['seed' + rngname] = seedrandom;\r\n\r\n//\r\n// ARC4\r\n//\r\n// An ARC4 implementation. The constructor takes a key in the form of\r\n// an array of at most (width) integers that should be 0 <= x < (width).\r\n//\r\n// The g(count) method returns a pseudorandom integer that concatenates\r\n// the next (count) outputs from ARC4. Its return value is a number x\r\n// that is in the range 0 <= x < (width ^ count).\r\n//\r\n function ARC4(key) {\r\n var t, keylen = key.length,\r\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\r\n\r\n // The empty key [] is treated as [0].\r\n if (!keylen) { key = [keylen++]; }\r\n\r\n // Set up S using the standard key scheduling algorithm.\r\n while (i < width) {\r\n s[i] = i++;\r\n }\r\n for (i = 0; i < width; i++) {\r\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\r\n s[j] = t;\r\n }\r\n\r\n // The \"g\" method returns the next (count) outputs as one number.\r\n me.g = function(count) {\r\n // Using instance members instead of closure state nearly doubles speed.\r\n var t, r = 0,\r\n i = me.i, j = me.j, s = me.S;\r\n while (count--) {\r\n t = s[i = mask & (i + 1)];\r\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\r\n }\r\n me.i = i; me.j = j;\r\n return r;\r\n // For robust unpredictability, the function call below automatically\r\n // discards an initial batch of values. This is called RC4-drop[256].\r\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\r\n };\r\n }\r\n\r\n//\r\n// copy()\r\n// Copies internal state of ARC4 to or from a plain object.\r\n//\r\n function copy(f, t) {\r\n t.i = f.i;\r\n t.j = f.j;\r\n t.S = f.S.slice();\r\n return t;\r\n }\r\n\r\n//\r\n// flatten()\r\n// Converts an object tree to nested arrays of strings.\r\n//\r\n function flatten(obj, depth) {\r\n var result = [], typ = (typeof obj), prop;\r\n if (depth && typ == 'object') {\r\n for (prop in obj) {\r\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\r\n }\r\n }\r\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\r\n }\r\n\r\n//\r\n// mixkey()\r\n// Mixes a string seed into a key that is an array of integers, and\r\n// returns a shortened string seed that is equivalent to the result key.\r\n//\r\n function mixkey(seed, key) {\r\n var stringseed = seed + '', smear, j = 0;\r\n while (j < stringseed.length) {\r\n key[mask & j] =\r\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\r\n }\r\n return tostring(key);\r\n }\r\n\r\n//\r\n// autoseed()\r\n// Returns an object for autoseeding, using window.crypto and Node crypto\r\n// module if available.\r\n//\r\n function autoseed() {\r\n try {\r\n if (nodecrypto) { return tostring(nodecrypto.randomBytes(width)); }\r\n var out = new Uint8Array(width);\r\n (global.crypto || global.msCrypto).getRandomValues(out);\r\n return tostring(out);\r\n } catch (e) {\r\n var browser = global.navigator,\r\n plugins = browser && browser.plugins;\r\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\r\n }\r\n }\r\n\r\n//\r\n// tostring()\r\n// Converts an array of charcodes to a string\r\n//\r\n function tostring(a) {\r\n return String.fromCharCode.apply(0, a);\r\n }\r\n\r\n//\r\n// When seedrandom.js is loaded, we immediately mix a few bits\r\n// from the built-in RNG into the entropy pool. Because we do\r\n// not want to interfere with deterministic PRNG state later,\r\n// seedrandom will not call math.random on its own again after\r\n// initialization.\r\n//\r\n mixkey(math.random(), pool);\r\n\r\n//\r\n// Nodejs and AMD support: export the implementation as a module using\r\n// either convention.\r\n//\r\n\r\n// End anonymous scope, and pass initial values.\r\n})(\r\n [], // pool: entropy pool starts empty\r\n BMMath // math: package containing random, pow, and seedrandom\r\n);\r\n/* eslint-disable */\r\nvar BezierFactory = (function () {\r\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 */\r\n\r\n var ob = {};\r\n ob.getBezierEasing = getBezierEasing;\r\n var beziers = {};\r\n\r\n function getBezierEasing(a, b, c, d, nm) {\r\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\r\n if (beziers[str]) {\r\n return beziers[str];\r\n }\r\n var bezEasing = new BezierEasing([a, b, c, d]);\r\n beziers[str] = bezEasing;\r\n return bezEasing;\r\n }\r\n\r\n // These values are established by empiricism with tests (tradeoff: performance VS precision)\r\n var NEWTON_ITERATIONS = 4;\r\n var NEWTON_MIN_SLOPE = 0.001;\r\n var SUBDIVISION_PRECISION = 0.0000001;\r\n var SUBDIVISION_MAX_ITERATIONS = 10;\r\n\r\n var kSplineTableSize = 11;\r\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\r\n\r\n var float32ArraySupported = typeof Float32Array === 'function';\r\n\r\n function A(aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\r\n function B(aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\r\n function C(aA1) { return 3.0 * aA1; }\r\n\r\n // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\r\n function calcBezier(aT, aA1, aA2) {\r\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\r\n }\r\n\r\n // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\r\n function getSlope(aT, aA1, aA2) {\r\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n }\r\n\r\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\r\n var currentX,\r\n currentT,\r\n i = 0;\r\n do {\r\n currentT = aA + (aB - aA) / 2.0;\r\n currentX = calcBezier(currentT, mX1, mX2) - aX;\r\n if (currentX > 0.0) {\r\n aB = currentT;\r\n } else {\r\n aA = currentT;\r\n }\r\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n return currentT;\r\n }\r\n\r\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\r\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n var currentSlope = getSlope(aGuessT, mX1, mX2);\r\n if (currentSlope === 0.0) return aGuessT;\r\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n aGuessT -= currentX / currentSlope;\r\n }\r\n return aGuessT;\r\n }\r\n\r\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\r\n function BezierEasing(points) {\r\n this._p = points;\r\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n this._precomputed = false;\r\n\r\n this.get = this.get.bind(this);\r\n }\r\n\r\n BezierEasing.prototype = {\r\n\r\n get: function (x) {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n if (!this._precomputed) this._precompute();\r\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\r\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\r\n if (x === 0) return 0;\r\n if (x === 1) return 1;\r\n return calcBezier(this._getTForX(x), mY1, mY2);\r\n },\r\n\r\n // Private part\r\n\r\n _precompute: function () {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n this._precomputed = true;\r\n if (mX1 !== mY1 || mX2 !== mY2) { this._calcSampleValues(); }\r\n },\r\n\r\n _calcSampleValues: function () {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2];\r\n for (var i = 0; i < kSplineTableSize; ++i) {\r\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n }\r\n },\r\n\r\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\r\n _getTForX: function (aX) {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2],\r\n mSampleValues = this._mSampleValues;\r\n\r\n var intervalStart = 0.0;\r\n var currentSample = 1;\r\n var lastSample = kSplineTableSize - 1;\r\n\r\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n intervalStart += kSampleStepSize;\r\n }\r\n --currentSample;\r\n\r\n // Interpolate to provide an initial guess for t\r\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\r\n var guessForT = intervalStart + dist * kSampleStepSize;\r\n\r\n var initialSlope = getSlope(guessForT, mX1, mX2);\r\n if (initialSlope >= NEWTON_MIN_SLOPE) {\r\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\r\n } if (initialSlope === 0.0) {\r\n return guessForT;\r\n }\r\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\r\n },\r\n };\r\n\r\n return ob;\r\n}());\r\n\r\n(function () {\r\n var lastTime = 0;\r\n var vendors = ['ms', 'moz', 'webkit', 'o'];\r\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { // eslint-disable-line no-plusplus\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n if (!window.requestAnimationFrame) {\r\n window.requestAnimationFrame = function (callback) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = setTimeout(function () {\r\n callback(currTime + timeToCall);\r\n },\r\n timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n }\r\n if (!window.cancelAnimationFrame) {\r\n window.cancelAnimationFrame = function (id) {\r\n clearTimeout(id);\r\n };\r\n }\r\n}());\r\n\r\n/* exported extendPrototype, getDescriptor, createProxyFunction */\r\n\r\nfunction extendPrototype(sources, destination) {\r\n var i;\r\n var len = sources.length;\r\n var sourcePrototype;\r\n for (i = 0; i < len; i += 1) {\r\n sourcePrototype = sources[i].prototype;\r\n for (var attr in sourcePrototype) {\r\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\r\n }\r\n }\r\n}\r\n\r\nfunction getDescriptor(object, prop) {\r\n return Object.getOwnPropertyDescriptor(object, prop);\r\n}\r\n\r\nfunction createProxyFunction(prototype) {\r\n function ProxyFunction() {}\r\n ProxyFunction.prototype = prototype;\r\n return ProxyFunction;\r\n}\r\n\r\n/* global segmentsLengthPool, defaultCurveSegments, createSizedArray, bmPow, bmSqrt, bmFloor, createTypedArray, bezierLengthPool */\r\n/* exported bez */\r\n\r\nfunction bezFunction() {\r\n var math = Math;\r\n\r\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\r\n var det1 = (x1 * y2) + (y1 * x3) + (x2 * y3) - (x3 * y2) - (y3 * x1) - (x2 * y1);\r\n return det1 > -0.001 && det1 < 0.001;\r\n }\r\n\r\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\r\n if (z1 === 0 && z2 === 0 && z3 === 0) {\r\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\r\n }\r\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\r\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\r\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\r\n var diffDist;\r\n if (dist1 > dist2) {\r\n if (dist1 > dist3) {\r\n diffDist = dist1 - dist2 - dist3;\r\n } else {\r\n diffDist = dist3 - dist2 - dist1;\r\n }\r\n } else if (dist3 > dist2) {\r\n diffDist = dist3 - dist2 - dist1;\r\n } else {\r\n diffDist = dist2 - dist1 - dist3;\r\n }\r\n return diffDist > -0.0001 && diffDist < 0.0001;\r\n }\r\n\r\n var getBezierLength = (function () {\r\n return function (pt1, pt2, pt3, pt4) {\r\n var curveSegments = defaultCurveSegments;\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point = [];\r\n var lastPoint = [];\r\n var lengthData = bezierLengthPool.newElement();\r\n len = pt3.length;\r\n for (k = 0; k < curveSegments; k += 1) {\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n for (i = 0; i < len; i += 1) {\r\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];\r\n point[i] = ptCoord;\r\n if (lastPoint[i] !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n lastPoint[i] = point[i];\r\n }\r\n if (ptDistance) {\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n }\r\n lengthData.percents[k] = perc;\r\n lengthData.lengths[k] = addedLength;\r\n }\r\n lengthData.addedLength = addedLength;\r\n return lengthData;\r\n };\r\n }());\r\n\r\n function getSegmentsLength(shapeData) {\r\n var segmentsLength = segmentsLengthPool.newElement();\r\n var closed = shapeData.c;\r\n var pathV = shapeData.v;\r\n var pathO = shapeData.o;\r\n var pathI = shapeData.i;\r\n var i;\r\n var len = shapeData._length;\r\n var lengths = segmentsLength.lengths;\r\n var totalLength = 0;\r\n for (i = 0; i < len - 1; i += 1) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n if (closed && len) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n segmentsLength.totalLength = totalLength;\r\n return segmentsLength;\r\n }\r\n\r\n function BezierData(length) {\r\n this.segmentLength = 0;\r\n this.points = new Array(length);\r\n }\r\n\r\n function PointData(partial, point) {\r\n this.partialLength = partial;\r\n this.point = point;\r\n }\r\n\r\n var buildBezierData = (function () {\r\n var storedData = {};\r\n\r\n return function (pt1, pt2, pt3, pt4) {\r\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\r\n if (!storedData[bezierName]) {\r\n var curveSegments = defaultCurveSegments;\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point;\r\n var lastPoint = null;\r\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])) {\r\n curveSegments = 2;\r\n }\r\n var bezierData = new BezierData(curveSegments);\r\n len = pt3.length;\r\n for (k = 0; k < curveSegments; k += 1) {\r\n point = createSizedArray(len);\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n for (i = 0; i < len; i += 1) {\r\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];\r\n point[i] = ptCoord;\r\n if (lastPoint !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n }\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n bezierData.points[k] = new PointData(ptDistance, point);\r\n lastPoint = point;\r\n }\r\n bezierData.segmentLength = addedLength;\r\n storedData[bezierName] = bezierData;\r\n }\r\n return storedData[bezierName];\r\n };\r\n }());\r\n\r\n function getDistancePerc(perc, bezierData) {\r\n var percents = bezierData.percents;\r\n var lengths = bezierData.lengths;\r\n var len = percents.length;\r\n var initPos = bmFloor((len - 1) * perc);\r\n var lengthPos = perc * bezierData.addedLength;\r\n var lPerc = 0;\r\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\r\n return percents[initPos];\r\n }\r\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\r\n var flag = true;\r\n while (flag) {\r\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\r\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\r\n flag = false;\r\n } else {\r\n initPos += dir;\r\n }\r\n if (initPos < 0 || initPos >= len - 1) {\r\n // FIX for TypedArrays that don't store floating point values with enough accuracy\r\n if (initPos === len - 1) {\r\n return percents[initPos];\r\n }\r\n flag = false;\r\n }\r\n }\r\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\r\n }\r\n\r\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\r\n var t1 = getDistancePerc(percent, bezierData);\r\n var u1 = 1 - t1;\r\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;\r\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;\r\n return [ptX, ptY];\r\n }\r\n\r\n var bezierSegmentPoints = createTypedArray('float32', 8);\r\n\r\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\r\n if (startPerc < 0) {\r\n startPerc = 0;\r\n } else if (startPerc > 1) {\r\n startPerc = 1;\r\n }\r\n var t0 = getDistancePerc(startPerc, bezierData);\r\n endPerc = endPerc > 1 ? 1 : endPerc;\r\n var t1 = getDistancePerc(endPerc, bezierData);\r\n var i;\r\n var len = pt1.length;\r\n var u0 = 1 - t0;\r\n var u1 = 1 - t1;\r\n var u0u0u0 = u0 * u0 * u0;\r\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\r\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\r\n var t0t0t0 = t0 * t0 * t0;\r\n //\r\n var u0u0u1 = u0 * u0 * u1;\r\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\r\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\r\n var t0t0t1 = t0 * t0 * t1;\r\n //\r\n var u0u1u1 = u0 * u1 * u1;\r\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\r\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\r\n var t0t1t1 = t0 * t1 * t1;\r\n //\r\n var u1u1u1 = u1 * u1 * u1;\r\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\r\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\r\n var t1t1t1 = t1 * t1 * t1;\r\n for (i = 0; i < len; i += 1) {\r\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\r\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\r\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\r\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\r\n }\r\n\r\n return bezierSegmentPoints;\r\n }\r\n\r\n return {\r\n getSegmentsLength: getSegmentsLength,\r\n getNewSegment: getNewSegment,\r\n getPointInSegment: getPointInSegment,\r\n buildBezierData: buildBezierData,\r\n pointOnLine2D: pointOnLine2D,\r\n pointOnLine3D: pointOnLine3D,\r\n };\r\n}\r\n\r\nvar bez = bezFunction();\r\n\r\n/* global _useWebWorker */\r\n\r\nvar dataManager = (function () {\r\n var _counterId = 1;\r\n var processes = [];\r\n var workerFn;\r\n var workerInstance;\r\n var workerProxy = {\r\n onmessage: function () {\r\n\r\n },\r\n postMessage: function (path) {\r\n workerFn({\r\n data: path,\r\n });\r\n },\r\n };\r\n var _workerSelf = {\r\n postMessage: function (data) {\r\n workerProxy.onmessage({\r\n data: data,\r\n });\r\n },\r\n };\r\n function createWorker(fn) {\r\n if (window.Worker && window.Blob && _useWebWorker) {\r\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], { type: 'text/javascript' });\r\n // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\r\n var url = URL.createObjectURL(blob);\r\n return new Worker(url);\r\n }\r\n workerFn = fn;\r\n return workerProxy;\r\n }\r\n\r\n function setupWorker() {\r\n if (!workerInstance) {\r\n workerInstance = createWorker(function workerStart(e) {\r\n /* exported dataManager */\r\n\r\n function dataFunctionManager() {\r\n // var tCanvasHelper = createTag('canvas').getContext('2d');\r\n\r\n function completeLayers(layers, comps) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n if (('ks' in layerData) && !layerData.completed) {\r\n layerData.completed = true;\r\n if (layerData.tt) {\r\n layers[i - 1].td = layerData.tt;\r\n }\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\r\n }\r\n if (maskProps[j].pt.k[k].e) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (layerData.ty === 0) {\r\n layerData.layers = findCompLayers(layerData.refId, comps);\r\n completeLayers(layerData.layers, comps);\r\n } else if (layerData.ty === 4) {\r\n completeShapes(layerData.shapes);\r\n } else if (layerData.ty === 5) {\r\n completeText(layerData);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function findCompLayers(id, comps) {\r\n var i = 0;\r\n var len = comps.length;\r\n while (i < len) {\r\n if (comps[i].id === id) {\r\n if (!comps[i].layers.__used) {\r\n comps[i].layers.__used = true;\r\n return comps[i].layers;\r\n }\r\n return JSON.parse(JSON.stringify(comps[i].layers));\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n\r\n function completeShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k);\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\r\n }\r\n if (arr[i].ks.k[j].e) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function convertPathsToAbsoluteValues(path) {\r\n var i;\r\n var len = path.i.length;\r\n for (i = 0; i < len; i += 1) {\r\n path.i[i][0] += path.v[i][0];\r\n path.i[i][1] += path.v[i][1];\r\n path.o[i][0] += path.v[i][0];\r\n path.o[i][1] += path.v[i][1];\r\n }\r\n }\r\n\r\n function checkVersion(minimum, animVersionString) {\r\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\r\n if (minimum[0] > animVersion[0]) {\r\n return true;\r\n } if (animVersion[0] > minimum[0]) {\r\n return false;\r\n }\r\n if (minimum[1] > animVersion[1]) {\r\n return true;\r\n } if (animVersion[1] > minimum[1]) {\r\n return false;\r\n }\r\n if (minimum[2] > animVersion[2]) {\r\n return true;\r\n } if (animVersion[2] > minimum[2]) {\r\n return false;\r\n }\r\n return null;\r\n }\r\n\r\n var checkText = (function () {\r\n var minimumVersion = [4, 4, 14];\r\n\r\n function updateTextLayer(textLayer) {\r\n var documentData = textLayer.t.d;\r\n textLayer.t.d = {\r\n k: [\r\n {\r\n s: documentData,\r\n t: 0,\r\n },\r\n ],\r\n };\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n var checkChars = (function () {\r\n var minimumVersion = [4, 7, 99];\r\n return function (animationData) {\r\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\r\n var i;\r\n var len = animationData.chars.length;\r\n var j;\r\n var jLen;\r\n var pathData;\r\n var paths;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.chars[i].data && animationData.chars[i].data.shapes) {\r\n paths = animationData.chars[i].data.shapes[0].it;\r\n jLen = paths.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = paths[j].ks.k;\r\n if (!pathData.__converted) {\r\n convertPathsToAbsoluteValues(paths[j].ks.k);\r\n pathData.__converted = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n var checkPathProperties = (function () {\r\n var minimumVersion = [5, 7, 15];\r\n\r\n function updateTextLayer(textLayer) {\r\n var pathData = textLayer.t.p;\r\n if (typeof pathData.a === 'number') {\r\n pathData.a = {\r\n a: 0,\r\n k: pathData.a,\r\n };\r\n }\r\n if (typeof pathData.p === 'number') {\r\n pathData.p = {\r\n a: 0,\r\n k: pathData.p,\r\n };\r\n }\r\n if (typeof pathData.r === 'number') {\r\n pathData.r = {\r\n a: 0,\r\n k: pathData.r,\r\n };\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n var checkColors = (function () {\r\n var minimumVersion = [4, 1, 9];\r\n\r\n function iterateShapes(shapes) {\r\n var i;\r\n var len = shapes.length;\r\n var j;\r\n var jLen;\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n iterateShapes(shapes[i].it);\r\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\r\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\r\n jLen = shapes[i].c.k.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[i].c.k[j].s) {\r\n shapes[i].c.k[j].s[0] /= 255;\r\n shapes[i].c.k[j].s[1] /= 255;\r\n shapes[i].c.k[j].s[2] /= 255;\r\n shapes[i].c.k[j].s[3] /= 255;\r\n }\r\n if (shapes[i].c.k[j].e) {\r\n shapes[i].c.k[j].e[0] /= 255;\r\n shapes[i].c.k[j].e[1] /= 255;\r\n shapes[i].c.k[j].e[2] /= 255;\r\n shapes[i].c.k[j].e[3] /= 255;\r\n }\r\n }\r\n } else {\r\n shapes[i].c.k[0] /= 255;\r\n shapes[i].c.k[1] /= 255;\r\n shapes[i].c.k[2] /= 255;\r\n shapes[i].c.k[3] /= 255;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 4) {\r\n iterateShapes(layers[i].shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n var checkShapes = (function () {\r\n var minimumVersion = [4, 4, 18];\r\n\r\n function completeClosingShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n arr[i].ks.k.c = arr[i].closed;\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n arr[i].ks.k[j].s[0].c = arr[i].closed;\r\n }\r\n if (arr[i].ks.k[j].e) {\r\n arr[i].ks.k[j].e[0].c = arr[i].closed;\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeClosingShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n maskProps[j].pt.k.c = maskProps[j].cl;\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\r\n }\r\n if (maskProps[j].pt.k[k].e) {\r\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (layerData.ty === 4) {\r\n completeClosingShapes(layerData.shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n function completeData(animationData) {\r\n if (animationData.__complete) {\r\n return;\r\n }\r\n checkColors(animationData);\r\n checkText(animationData);\r\n checkChars(animationData);\r\n checkPathProperties(animationData);\r\n checkShapes(animationData);\r\n completeLayers(animationData.layers, animationData.assets);\r\n animationData.__complete = true;\r\n }\r\n\r\n function completeText(data) {\r\n if (data.t.a.length === 0 && !('m' in data.t.p)) {\r\n data.singleShape = true;\r\n }\r\n }\r\n\r\n var moduleOb = {};\r\n moduleOb.completeData = completeData;\r\n moduleOb.checkColors = checkColors;\r\n moduleOb.checkChars = checkChars;\r\n moduleOb.checkPathProperties = checkPathProperties;\r\n moduleOb.checkShapes = checkShapes;\r\n moduleOb.completeLayers = completeLayers;\r\n\r\n return moduleOb;\r\n }\r\n if (!_workerSelf.dataManager) {\r\n _workerSelf.dataManager = dataFunctionManager();\r\n }\r\n\r\n /* exported assetLoader */\r\n if (!_workerSelf.assetLoader) {\r\n _workerSelf.assetLoader = (function () {\r\n function formatResponse(xhr) {\r\n // using typeof doubles the time of execution of this method,\r\n // so if available, it's better to use the header to validate the type\r\n var contentTypeHeader = xhr.getResponseHeader('content-type');\r\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\r\n return xhr.response;\r\n }\r\n if (xhr.response && typeof xhr.response === 'object') {\r\n return xhr.response;\r\n } if (xhr.response && typeof xhr.response === 'string') {\r\n return JSON.parse(xhr.response);\r\n } if (xhr.responseText) {\r\n return JSON.parse(xhr.responseText);\r\n }\r\n return null;\r\n }\r\n\r\n function loadAsset(path, fullPath, callback, errorCallback) {\r\n var response;\r\n var xhr = new XMLHttpRequest();\r\n // set responseType after calling open or IE will break.\r\n try {\r\n // This crashes on Android WebView prior to KitKat\r\n xhr.responseType = 'json';\r\n } catch (err) {} // eslint-disable-line no-empty\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } else {\r\n try {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } catch (err) {\r\n if (errorCallback) {\r\n errorCallback(err);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n try {\r\n xhr.open('GET', path, true);\r\n } catch (error) {\r\n xhr.open('GET', fullPath + '/' + path, true);\r\n }\r\n xhr.send();\r\n }\r\n return {\r\n load: loadAsset,\r\n };\r\n }());\r\n }\r\n\r\n if (e.data.type === 'loadAnimation') {\r\n _workerSelf.assetLoader.load(\r\n e.data.path,\r\n e.data.fullPath,\r\n function (data) {\r\n _workerSelf.dataManager.completeData(data);\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success',\r\n });\r\n },\r\n function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error',\r\n });\r\n }\r\n );\r\n } else if (e.data.type === 'complete') {\r\n var animation = e.data.animation;\r\n _workerSelf.dataManager.completeData(animation);\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: animation,\r\n status: 'success',\r\n });\r\n } else if (e.data.type === 'loadData') {\r\n _workerSelf.assetLoader.load(\r\n e.data.path,\r\n e.data.fullPath,\r\n function (data) {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success',\r\n });\r\n },\r\n function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error',\r\n });\r\n }\r\n );\r\n }\r\n });\r\n\r\n workerInstance.onmessage = function (event) {\r\n var data = event.data;\r\n var id = data.id;\r\n var process = processes[id];\r\n processes[id] = null;\r\n if (data.status === 'success') {\r\n process.onComplete(data.payload);\r\n } else if (process.onError) {\r\n process.onError();\r\n }\r\n };\r\n }\r\n }\r\n\r\n function createProcess(onComplete, onError) {\r\n _counterId += 1;\r\n var id = 'processId_' + _counterId;\r\n processes[id] = {\r\n onComplete: onComplete,\r\n onError: onError,\r\n };\r\n return id;\r\n }\r\n\r\n function loadAnimation(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadAnimation',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId,\r\n });\r\n }\r\n\r\n function loadData(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadData',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId,\r\n });\r\n }\r\n\r\n function completeAnimation(anim, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'complete',\r\n animation: anim,\r\n id: processId,\r\n });\r\n }\r\n\r\n return {\r\n loadAnimation: loadAnimation,\r\n loadData: loadData,\r\n completeAnimation: completeAnimation,\r\n };\r\n}());\r\n\r\n/* exported getFontProperties */\r\n\r\nfunction getFontProperties(fontData) {\r\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\r\n\r\n var fWeight = 'normal'; var\r\n fStyle = 'normal';\r\n var len = styles.length;\r\n var styleName;\r\n for (var i = 0; i < len; i += 1) {\r\n styleName = styles[i].toLowerCase();\r\n switch (styleName) {\r\n case 'italic':\r\n fStyle = 'italic';\r\n break;\r\n case 'bold':\r\n fWeight = '700';\r\n break;\r\n case 'black':\r\n fWeight = '900';\r\n break;\r\n case 'medium':\r\n fWeight = '500';\r\n break;\r\n case 'regular':\r\n case 'normal':\r\n fWeight = '400';\r\n break;\r\n case 'light':\r\n case 'thin':\r\n fWeight = '200';\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n style: fStyle,\r\n weight: fontData.fWeight || fWeight,\r\n };\r\n}\r\n\r\n/* global createNS, createTag, getFontProperties */\r\n/* exported FontManager */\r\n\r\nvar FontManager = (function () {\r\n var maxWaitingTime = 5000;\r\n var emptyChar = {\r\n w: 0,\r\n size: 0,\r\n shapes: [],\r\n };\r\n var combinedCharacters = [];\r\n // Hindi characters\r\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366,\r\n 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379,\r\n 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\r\n\r\n var surrogateModifiers = [\r\n 'd83cdffb',\r\n 'd83cdffc',\r\n 'd83cdffd',\r\n 'd83cdffe',\r\n 'd83cdfff',\r\n ];\r\n\r\n var zeroWidthJoiner = [65039, 8205];\r\n\r\n function trimFontOptions(font) {\r\n var familyArray = font.split(',');\r\n var i;\r\n var len = familyArray.length;\r\n var enabledFamilies = [];\r\n for (i = 0; i < len; i += 1) {\r\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\r\n enabledFamilies.push(familyArray[i]);\r\n }\r\n }\r\n return enabledFamilies.join(',');\r\n }\r\n\r\n function setUpNode(font, family) {\r\n var parentNode = createTag('span');\r\n // Node is invisible to screen readers.\r\n parentNode.setAttribute('aria-hidden', true);\r\n parentNode.style.fontFamily = family;\r\n var node = createTag('span');\r\n // Characters that vary significantly among different fonts\r\n node.innerText = 'giItT1WQy@!-/#';\r\n // Visible - so we can measure it - but not on the screen\r\n parentNode.style.position = 'absolute';\r\n parentNode.style.left = '-10000px';\r\n parentNode.style.top = '-10000px';\r\n // Large font size makes even subtle changes obvious\r\n parentNode.style.fontSize = '300px';\r\n // Reset any font properties\r\n parentNode.style.fontVariant = 'normal';\r\n parentNode.style.fontStyle = 'normal';\r\n parentNode.style.fontWeight = 'normal';\r\n parentNode.style.letterSpacing = '0';\r\n parentNode.appendChild(node);\r\n document.body.appendChild(parentNode);\r\n\r\n // Remember width with no applied web font\r\n var width = node.offsetWidth;\r\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\r\n return { node: node, w: width, parent: parentNode };\r\n }\r\n\r\n function checkLoadedFonts() {\r\n var i;\r\n var len = this.fonts.length;\r\n var node;\r\n var w;\r\n var loadedCount = len;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.fonts[i].loaded) {\r\n loadedCount -= 1;\r\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].monoCase.node;\r\n w = this.fonts[i].monoCase.w;\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].sansCase.node;\r\n w = this.fonts[i].sansCase.w;\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n }\r\n }\r\n if (this.fonts[i].loaded) {\r\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\r\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\r\n }\r\n }\r\n }\r\n\r\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\r\n setTimeout(this.checkLoadedFontsBinded, 20);\r\n } else {\r\n setTimeout(this.setIsLoadedBinded, 10);\r\n }\r\n }\r\n\r\n function createHelper(def, fontData) {\r\n var tHelper = createNS('text');\r\n tHelper.style.fontSize = '100px';\r\n // tHelper.style.fontFamily = fontData.fFamily;\r\n\r\n var fontProps = getFontProperties(fontData);\r\n tHelper.setAttribute('font-family', fontData.fFamily);\r\n tHelper.setAttribute('font-style', fontProps.style);\r\n tHelper.setAttribute('font-weight', fontProps.weight);\r\n tHelper.textContent = '1';\r\n if (fontData.fClass) {\r\n tHelper.style.fontFamily = 'inherit';\r\n tHelper.setAttribute('class', fontData.fClass);\r\n } else {\r\n tHelper.style.fontFamily = fontData.fFamily;\r\n }\r\n def.appendChild(tHelper);\r\n var tCanvasHelper = createTag('canvas').getContext('2d');\r\n tCanvasHelper.font = fontData.fWeight + ' ' + fontData.fStyle + ' 100px ' + fontData.fFamily;\r\n // tCanvasHelper.font = ' 100px '+ fontData.fFamily;\r\n return tHelper;\r\n }\r\n\r\n function addFonts(fontData, defs) {\r\n if (!fontData) {\r\n this.isLoaded = true;\r\n return;\r\n }\r\n if (this.chars) {\r\n this.isLoaded = true;\r\n this.fonts = fontData.list;\r\n return;\r\n }\r\n\r\n var fontArr = fontData.list;\r\n var i;\r\n var len = fontArr.length;\r\n var _pendingFonts = len;\r\n for (i = 0; i < len; i += 1) {\r\n var shouldLoadFont = true;\r\n var loadedSelector;\r\n var j;\r\n fontArr[i].loaded = false;\r\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\r\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\r\n if (!fontArr[i].fPath) {\r\n fontArr[i].loaded = true;\r\n _pendingFonts -= 1;\r\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\r\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\r\n\r\n if (loadedSelector.length > 0) {\r\n shouldLoadFont = false;\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var s = createTag('style');\r\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n s.setAttribute('f-origin', fontArr[i].origin);\r\n s.setAttribute('f-family', fontArr[i].fFamily);\r\n s.type = 'text/css';\r\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\r\n defs.appendChild(s);\r\n }\r\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\r\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var l = createTag('link');\r\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n l.setAttribute('f-origin', fontArr[i].origin);\r\n l.type = 'text/css';\r\n l.rel = 'stylesheet';\r\n l.href = fontArr[i].fPath;\r\n document.body.appendChild(l);\r\n }\r\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\r\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (fontArr[i].fPath === loadedSelector[j].src) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var sc = createTag('link');\r\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n sc.setAttribute('f-origin', fontArr[i].origin);\r\n sc.setAttribute('rel', 'stylesheet');\r\n sc.setAttribute('href', fontArr[i].fPath);\r\n defs.appendChild(sc);\r\n }\r\n }\r\n fontArr[i].helper = createHelper(defs, fontArr[i]);\r\n fontArr[i].cache = {};\r\n this.fonts.push(fontArr[i]);\r\n }\r\n if (_pendingFonts === 0) {\r\n this.isLoaded = true;\r\n } else {\r\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\r\n // Adding this timeout seems to fix it\r\n setTimeout(this.checkLoadedFonts.bind(this), 100);\r\n }\r\n }\r\n\r\n function addChars(chars) {\r\n if (!chars) {\r\n return;\r\n }\r\n if (!this.chars) {\r\n this.chars = [];\r\n }\r\n var i;\r\n var len = chars.length;\r\n var j;\r\n var jLen = this.chars.length;\r\n var found;\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n found = false;\r\n while (j < jLen) {\r\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\r\n found = true;\r\n }\r\n j += 1;\r\n }\r\n if (!found) {\r\n this.chars.push(chars[i]);\r\n jLen += 1;\r\n }\r\n }\r\n }\r\n\r\n function getCharData(char, style, font) {\r\n var i = 0;\r\n var len = this.chars.length;\r\n while (i < len) {\r\n if (this.chars[i].ch === char && this.chars[i].style === style && this.chars[i].fFamily === font) {\r\n return this.chars[i];\r\n }\r\n i += 1;\r\n }\r\n if (((typeof char === 'string' && char.charCodeAt(0) !== 13) || !char)\r\n && console\r\n && console.warn // eslint-disable-line no-console\r\n && !this._warned\r\n ) {\r\n this._warned = true;\r\n console.warn('Missing character from exported characters list: ', char, style, font); // eslint-disable-line no-console\r\n }\r\n return emptyChar;\r\n }\r\n\r\n function measureText(char, fontName, size) {\r\n var fontData = this.getFontByName(fontName);\r\n var index = char.charCodeAt(0);\r\n if (!fontData.cache[index + 1]) {\r\n var tHelper = fontData.helper;\r\n // Canvas version\r\n // fontData.cache[index] = tHelper.measureText(char).width / 100;\r\n // SVG version\r\n // console.log(tHelper.getBBox().width)\r\n if (char === ' ') {\r\n tHelper.textContent = '|' + char + '|';\r\n var doubleSize = tHelper.getComputedTextLength();\r\n tHelper.textContent = '||';\r\n var singleSize = tHelper.getComputedTextLength();\r\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\r\n } else {\r\n tHelper.textContent = char;\r\n fontData.cache[index + 1] = (tHelper.getComputedTextLength()) / 100;\r\n }\r\n }\r\n return fontData.cache[index + 1] * size;\r\n }\r\n\r\n function getFontByName(name) {\r\n var i = 0;\r\n var len = this.fonts.length;\r\n while (i < len) {\r\n if (this.fonts[i].fName === name) {\r\n return this.fonts[i];\r\n }\r\n i += 1;\r\n }\r\n return this.fonts[0];\r\n }\r\n\r\n function isModifier(firstCharCode, secondCharCode) {\r\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\r\n return surrogateModifiers.indexOf(sum) !== -1;\r\n }\r\n\r\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\r\n if (!secondCharCode) {\r\n return firstCharCode === zeroWidthJoiner[1];\r\n }\r\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\r\n }\r\n\r\n function isCombinedCharacter(char) {\r\n return combinedCharacters.indexOf(char) !== -1;\r\n }\r\n\r\n function setIsLoaded() {\r\n this.isLoaded = true;\r\n }\r\n\r\n var Font = function () {\r\n this.fonts = [];\r\n this.chars = null;\r\n this.typekitLoaded = 0;\r\n this.isLoaded = false;\r\n this._warned = false;\r\n this.initTime = Date.now();\r\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\r\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\r\n };\r\n Font.isModifier = isModifier;\r\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\r\n Font.isCombinedCharacter = isCombinedCharacter;\r\n\r\n var fontPrototype = {\r\n addChars: addChars,\r\n addFonts: addFonts,\r\n getCharData: getCharData,\r\n getFontByName: getFontByName,\r\n measureText: measureText,\r\n checkLoadedFonts: checkLoadedFonts,\r\n setIsLoaded: setIsLoaded,\r\n };\r\n\r\n Font.prototype = fontPrototype;\r\n\r\n return Font;\r\n}());\r\n\r\n/* global initialDefaultFrame, BezierFactory, degToRads, bez, createTypedArray */\r\n/* exported PropertyFactory */\r\n\r\nvar PropertyFactory = (function () {\r\n var initFrame = initialDefaultFrame;\r\n var mathAbs = Math.abs;\r\n\r\n function interpolateValue(frameNum, caching) {\r\n var offsetTime = this.offsetTime;\r\n var newValue;\r\n if (this.propType === 'multidimensional') {\r\n newValue = createTypedArray('float32', this.pv.length);\r\n }\r\n var iterationIndex = caching.lastIndex;\r\n var i = iterationIndex;\r\n var len = this.keyframes.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n\r\n while (flag) {\r\n keyData = this.keyframes[i];\r\n nextKeyData = this.keyframes[i + 1];\r\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\r\n if (keyData.h) {\r\n keyData = nextKeyData;\r\n }\r\n iterationIndex = 0;\r\n break;\r\n }\r\n if ((nextKeyData.t - offsetTime) > frameNum) {\r\n iterationIndex = i;\r\n break;\r\n }\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n iterationIndex = 0;\r\n flag = false;\r\n }\r\n }\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n\r\n var k;\r\n var kLen;\r\n var perc;\r\n var jLen;\r\n var j;\r\n var fnc;\r\n var nextKeyTime = nextKeyData.t - offsetTime;\r\n var keyTime = keyData.t - offsetTime;\r\n var endValue;\r\n if (keyData.to) {\r\n if (!keyframeMetadata.bezierData) {\r\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\r\n }\r\n var bezierData = keyframeMetadata.bezierData;\r\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\r\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\r\n kLen = bezierData.points[ind].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[ind].point[k];\r\n }\r\n // caching._lastKeyframeIndex = -1;\r\n } else {\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\r\n keyframeMetadata.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n var distanceInLine = bezierData.segmentLength * perc;\r\n\r\n var segmentPerc;\r\n var addedLength = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastAddedLength : 0;\r\n j = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastPoint : 0;\r\n flag = true;\r\n jLen = bezierData.points.length;\r\n while (flag) {\r\n addedLength += bezierData.points[j].partialLength;\r\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k];\r\n }\r\n break;\r\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\r\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\r\n }\r\n break;\r\n }\r\n if (j < jLen - 1) {\r\n j += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n caching._lastPoint = j;\r\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\r\n caching._lastKeyframeIndex = i;\r\n }\r\n } else {\r\n var outX;\r\n var outY;\r\n var inX;\r\n var inY;\r\n var keyValue;\r\n len = keyData.s.length;\r\n endValue = nextKeyData.s || keyData.e;\r\n if (this.sh && keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n newValue[0] = endValue[0];\r\n newValue[1] = endValue[1];\r\n newValue[2] = endValue[2];\r\n } else if (frameNum <= keyTime) {\r\n newValue[0] = keyData.s[0];\r\n newValue[1] = keyData.s[1];\r\n newValue[2] = keyData.s[2];\r\n } else {\r\n var quatStart = createQuaternion(keyData.s);\r\n var quatEnd = createQuaternion(endValue);\r\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\r\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\r\n }\r\n } else {\r\n for (i = 0; i < len; i += 1) {\r\n if (keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n perc = 1;\r\n } else if (frameNum < keyTime) {\r\n perc = 0;\r\n } else {\r\n if (keyData.o.x.constructor === Array) {\r\n if (!keyframeMetadata.__fnct) {\r\n keyframeMetadata.__fnct = [];\r\n }\r\n if (!keyframeMetadata.__fnct[i]) {\r\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\r\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\r\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\r\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyframeMetadata.__fnct[i] = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct[i];\r\n }\r\n } else if (!keyframeMetadata.__fnct) {\r\n outX = keyData.o.x;\r\n outY = keyData.o.y;\r\n inX = keyData.i.x;\r\n inY = keyData.i.y;\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.keyframeMetadata = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct;\r\n }\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n }\r\n }\r\n\r\n endValue = nextKeyData.s || keyData.e;\r\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue[i] = keyValue;\r\n } else {\r\n newValue = keyValue;\r\n }\r\n }\r\n }\r\n }\r\n caching.lastIndex = iterationIndex;\r\n return newValue;\r\n }\r\n\r\n // based on @Toji's https://github.com/toji/gl-matrix/\r\n function slerp(a, b, t) {\r\n var out = [];\r\n var ax = a[0];\r\n var ay = a[1];\r\n var az = a[2];\r\n var aw = a[3];\r\n var bx = b[0];\r\n var by = b[1];\r\n var bz = b[2];\r\n var bw = b[3];\r\n\r\n var omega;\r\n var cosom;\r\n var sinom;\r\n var scale0;\r\n var scale1;\r\n\r\n cosom = ax * bx + ay * by + az * bz + aw * bw;\r\n if (cosom < 0.0) {\r\n cosom = -cosom;\r\n bx = -bx;\r\n by = -by;\r\n bz = -bz;\r\n bw = -bw;\r\n }\r\n if ((1.0 - cosom) > 0.000001) {\r\n omega = Math.acos(cosom);\r\n sinom = Math.sin(omega);\r\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\r\n scale1 = Math.sin(t * omega) / sinom;\r\n } else {\r\n scale0 = 1.0 - t;\r\n scale1 = t;\r\n }\r\n out[0] = scale0 * ax + scale1 * bx;\r\n out[1] = scale0 * ay + scale1 * by;\r\n out[2] = scale0 * az + scale1 * bz;\r\n out[3] = scale0 * aw + scale1 * bw;\r\n\r\n return out;\r\n }\r\n\r\n function quaternionToEuler(out, quat) {\r\n var qx = quat[0];\r\n var qy = quat[1];\r\n var qz = quat[2];\r\n var qw = quat[3];\r\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\r\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\r\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\r\n out[0] = heading / degToRads;\r\n out[1] = attitude / degToRads;\r\n out[2] = bank / degToRads;\r\n }\r\n\r\n function createQuaternion(values) {\r\n var heading = values[0] * degToRads;\r\n var attitude = values[1] * degToRads;\r\n var bank = values[2] * degToRads;\r\n var c1 = Math.cos(heading / 2);\r\n var c2 = Math.cos(attitude / 2);\r\n var c3 = Math.cos(bank / 2);\r\n var s1 = Math.sin(heading / 2);\r\n var s2 = Math.sin(attitude / 2);\r\n var s3 = Math.sin(bank / 2);\r\n var w = c1 * c2 * c3 - s1 * s2 * s3;\r\n var x = s1 * s2 * c3 + c1 * c2 * s3;\r\n var y = s1 * c2 * c3 + c1 * s2 * s3;\r\n var z = c1 * s2 * c3 - s1 * c2 * s3;\r\n\r\n return [x, y, z, w];\r\n }\r\n\r\n function getValueAtCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n if (!(frameNum === this._caching.lastFrame || (this._caching.lastFrame !== initFrame && ((this._caching.lastFrame >= endTime && frameNum >= endTime) || (this._caching.lastFrame < initTime && frameNum < initTime))))) {\r\n if (this._caching.lastFrame >= frameNum) {\r\n this._caching._lastKeyframeIndex = -1;\r\n this._caching.lastIndex = 0;\r\n }\r\n\r\n var renderResult = this.interpolateValue(frameNum, this._caching);\r\n this.pv = renderResult;\r\n }\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function setVValue(val) {\r\n var multipliedValue;\r\n if (this.propType === 'unidimensional') {\r\n multipliedValue = val * this.mult;\r\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\r\n this.v = multipliedValue;\r\n this._mdf = true;\r\n }\r\n } else {\r\n var i = 0;\r\n var len = this.v.length;\r\n while (i < len) {\r\n multipliedValue = val[i] * this.mult;\r\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\r\n this.v[i] = multipliedValue;\r\n this._mdf = true;\r\n }\r\n i += 1;\r\n }\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\r\n return;\r\n }\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = this._isFirstFrame;\r\n var i;\r\n var len = this.effectsSequence.length;\r\n var finalValue = this.kf ? this.pv : this.data.k;\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n this.setVValue(finalValue);\r\n this._isFirstFrame = false;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n function ValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this.v = mult ? data.k * mult : data.k;\r\n this.pv = data.k;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.vel = 0;\r\n this.effectsSequence = [];\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function MultiDimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.frameId = -1;\r\n var i;\r\n var len = data.k.length;\r\n this.v = createTypedArray('float32', len);\r\n this.pv = createTypedArray('float32', len);\r\n this.vel = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n this.v[i] = data.k[i] * this.mult;\r\n this.pv[i] = data.k[i];\r\n }\r\n this._isFirstFrame = true;\r\n this.effectsSequence = [];\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.frameId = -1;\r\n this._caching = {\r\n lastFrame: initFrame, lastIndex: 0, value: 0, _lastKeyframeIndex: -1,\r\n };\r\n this.k = true;\r\n this.kf = true;\r\n this.data = data;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.v = initFrame;\r\n this.pv = initFrame;\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n var i;\r\n var len = data.k.length;\r\n var s;\r\n var e;\r\n var to;\r\n var ti;\r\n for (i = 0; i < len - 1; i += 1) {\r\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\r\n s = data.k[i].s;\r\n e = data.k[i + 1].s;\r\n to = data.k[i].to;\r\n ti = data.k[i].ti;\r\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]))) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\r\n if (s.length === 2 || (s[2] === e[2] && to[2] === 0 && ti[2] === 0)) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n }\r\n }\r\n }\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.data = data;\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.k = true;\r\n this.kf = true;\r\n this._isFirstFrame = true;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.frameId = -1;\r\n var arrLen = data.k[0].s.length;\r\n this.v = createTypedArray('float32', arrLen);\r\n this.pv = createTypedArray('float32', arrLen);\r\n for (i = 0; i < arrLen; i += 1) {\r\n this.v[i] = initFrame;\r\n this.pv[i] = initFrame;\r\n }\r\n this._caching = { lastFrame: initFrame, lastIndex: 0, value: createTypedArray('float32', arrLen) };\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function getProp(elem, data, type, mult, container) {\r\n var p;\r\n if (!data.k.length) {\r\n p = new ValueProperty(elem, data, mult, container);\r\n } else if (typeof (data.k[0]) === 'number') {\r\n p = new MultiDimensionalProperty(elem, data, mult, container);\r\n } else {\r\n switch (type) {\r\n case 0:\r\n p = new KeyframedValueProperty(elem, data, mult, container);\r\n break;\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n if (p.effectsSequence.length) {\r\n container.addDynamicProperty(p);\r\n }\r\n return p;\r\n }\r\n\r\n var ob = {\r\n getProp: getProp,\r\n };\r\n return ob;\r\n}());\r\n\r\n/* global Matrix, degToRads, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n/* exported TransformPropertyFactory */\r\n\r\nvar TransformPropertyFactory = (function () {\r\n var defaultVector = [0, 0];\r\n\r\n function applyToMatrix(mat) {\r\n var _mdf = this._mdf;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || _mdf;\r\n if (this.a) {\r\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n if (this.s) {\r\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n if (this.sk) {\r\n mat.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n if (this.r) {\r\n mat.rotate(-this.r.v);\r\n } else {\r\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\r\n .rotateY(this.or.v[1])\r\n .rotateX(this.or.v[0]);\r\n }\r\n if (this.data.p.s) {\r\n if (this.data.p.z) {\r\n mat.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n mat.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n function processKeys(forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n if (this._isDirty) {\r\n this.precalculateMatrix();\r\n this._isDirty = false;\r\n }\r\n\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf || forceRender) {\r\n var frameRate;\r\n this.v.cloneFromProps(this.pre.props);\r\n if (this.appliedTransformations < 1) {\r\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n if (this.appliedTransformations < 2) {\r\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n if (this.sk && this.appliedTransformations < 3) {\r\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n if (this.r && this.appliedTransformations < 4) {\r\n this.v.rotate(-this.r.v);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\r\n .rotateY(this.or.v[1])\r\n .rotateX(this.or.v[0]);\r\n }\r\n if (this.autoOriented) {\r\n var v1;\r\n var v2;\r\n frameRate = this.elem.globalData.frameRate;\r\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\r\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\r\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t / frameRate), 0);\r\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\r\n } else {\r\n v1 = this.p.pv;\r\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\r\n }\r\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\r\n v1 = [];\r\n v2 = [];\r\n var px = this.px;\r\n var py = this.py;\r\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\r\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2[0] = px.getValueAtTime((px.keyframes[0].t) / frameRate, 0);\r\n v2[1] = py.getValueAtTime((py.keyframes[0].t) / frameRate, 0);\r\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t / frameRate), 0);\r\n v1[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t / frameRate), 0);\r\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n } else {\r\n v1 = [px.pv, py.pv];\r\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\r\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\r\n }\r\n } else {\r\n v2 = defaultVector;\r\n v1 = v2;\r\n }\r\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\r\n }\r\n if (this.data.p && this.data.p.s) {\r\n if (this.data.p.z) {\r\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n this.v.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function precalculateMatrix() {\r\n if (!this.a.k) {\r\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n this.appliedTransformations = 1;\r\n } else {\r\n return;\r\n }\r\n if (!this.s.effectsSequence.length) {\r\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n this.appliedTransformations = 2;\r\n } else {\r\n return;\r\n }\r\n if (this.sk) {\r\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\r\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\r\n this.appliedTransformations = 3;\r\n } else {\r\n return;\r\n }\r\n }\r\n if (this.r) {\r\n if (!this.r.effectsSequence.length) {\r\n this.pre.rotate(-this.r.v);\r\n this.appliedTransformations = 4;\r\n }\r\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\r\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\r\n .rotateY(this.or.v[1])\r\n .rotateX(this.or.v[0]);\r\n this.appliedTransformations = 4;\r\n }\r\n }\r\n\r\n function autoOrient() {\r\n //\r\n // var prevP = this.getValueAtTime();\r\n }\r\n\r\n function addDynamicProperty(prop) {\r\n this._addDynamicProperty(prop);\r\n this.elem.addDynamicProperty(prop);\r\n this._isDirty = true;\r\n }\r\n\r\n function TransformProperty(elem, data, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.propType = 'transform';\r\n this.data = data;\r\n this.v = new Matrix();\r\n // Precalculated matrix with non animated properties\r\n this.pre = new Matrix();\r\n this.appliedTransformations = 0;\r\n this.initDynamicPropertyContainer(container || elem);\r\n if (data.p && data.p.s) {\r\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\r\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\r\n if (data.p.z) {\r\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\r\n }\r\n } else {\r\n this.p = PropertyFactory.getProp(elem, data.p || { k: [0, 0, 0] }, 1, 0, this);\r\n }\r\n if (data.rx) {\r\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\r\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\r\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\r\n if (data.or.k[0].ti) {\r\n var i;\r\n var len = data.or.k.length;\r\n for (i = 0; i < len; i += 1) {\r\n data.or.k[i].to = null;\r\n data.or.k[i].ti = null;\r\n }\r\n }\r\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this);\r\n // sh Indicates it needs to be capped between -180 and 180\r\n this.or.sh = true;\r\n } else {\r\n this.r = PropertyFactory.getProp(elem, data.r || { k: 0 }, 0, degToRads, this);\r\n }\r\n if (data.sk) {\r\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\r\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\r\n }\r\n this.a = PropertyFactory.getProp(elem, data.a || { k: [0, 0, 0] }, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s || { k: [100, 100, 100] }, 1, 0.01, this);\r\n // 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.\r\n if (data.o) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\r\n } else {\r\n this.o = { _mdf: false, v: 1 };\r\n }\r\n this._isDirty = true;\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n }\r\n\r\n TransformProperty.prototype = {\r\n applyToMatrix: applyToMatrix,\r\n getValue: processKeys,\r\n precalculateMatrix: precalculateMatrix,\r\n autoOrient: autoOrient,\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], TransformProperty);\r\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\r\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\r\n\r\n function getTransformProperty(elem, data, container) {\r\n return new TransformProperty(elem, data, container);\r\n }\r\n\r\n return {\r\n getTransformProperty: getTransformProperty,\r\n };\r\n}());\r\n\r\n/* global createSizedArray, createSizedArray, pointPool */\r\n\r\nfunction ShapePath() {\r\n this.c = false;\r\n this._length = 0;\r\n this._maxLength = 8;\r\n this.v = createSizedArray(this._maxLength);\r\n this.o = createSizedArray(this._maxLength);\r\n this.i = createSizedArray(this._maxLength);\r\n}\r\n\r\nShapePath.prototype.setPathData = function (closed, len) {\r\n this.c = closed;\r\n this.setLength(len);\r\n var i = 0;\r\n while (i < len) {\r\n this.v[i] = pointPool.newElement();\r\n this.o[i] = pointPool.newElement();\r\n this.i[i] = pointPool.newElement();\r\n i += 1;\r\n }\r\n};\r\n\r\nShapePath.prototype.setLength = function (len) {\r\n while (this._maxLength < len) {\r\n this.doubleArrayLength();\r\n }\r\n this._length = len;\r\n};\r\n\r\nShapePath.prototype.doubleArrayLength = function () {\r\n this.v = this.v.concat(createSizedArray(this._maxLength));\r\n this.i = this.i.concat(createSizedArray(this._maxLength));\r\n this.o = this.o.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n};\r\n\r\nShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\r\n var arr;\r\n this._length = Math.max(this._length, pos + 1);\r\n if (this._length >= this._maxLength) {\r\n this.doubleArrayLength();\r\n }\r\n switch (type) {\r\n case 'v':\r\n arr = this.v;\r\n break;\r\n case 'i':\r\n arr = this.i;\r\n break;\r\n case 'o':\r\n arr = this.o;\r\n break;\r\n default:\r\n arr = [];\r\n break;\r\n }\r\n if (!arr[pos] || (arr[pos] && !replace)) {\r\n arr[pos] = pointPool.newElement();\r\n }\r\n arr[pos][0] = x;\r\n arr[pos][1] = y;\r\n};\r\n\r\nShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\r\n this.setXYAt(vX, vY, 'v', pos, replace);\r\n this.setXYAt(oX, oY, 'o', pos, replace);\r\n this.setXYAt(iX, iY, 'i', pos, replace);\r\n};\r\n\r\nShapePath.prototype.reverse = function () {\r\n var newPath = new ShapePath();\r\n newPath.setPathData(this.c, this._length);\r\n var vertices = this.v;\r\n var outPoints = this.o;\r\n var inPoints = this.i;\r\n var init = 0;\r\n if (this.c) {\r\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\r\n init = 1;\r\n }\r\n var cnt = this._length - 1;\r\n var len = this._length;\r\n\r\n var i;\r\n for (i = init; i < len; i += 1) {\r\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\r\n cnt -= 1;\r\n }\r\n return newPath;\r\n};\r\n\r\n/* global extendPrototype, roundCorner, BezierFactory, shapePool, degToRads,\r\n shapeCollectionPool, PropertyFactory, bmMin, DynamicPropertyContainer */\r\n/* exported ShapePropertyFactory */\r\n\r\nvar ShapePropertyFactory = (function () {\r\n var initFrame = -999999;\r\n\r\n function interpolateShape(frameNum, previousValue, caching) {\r\n var iterationIndex = caching.lastIndex;\r\n var keyPropS;\r\n var keyPropE;\r\n var isHold;\r\n var j;\r\n var k;\r\n var jLen;\r\n var kLen;\r\n var perc;\r\n var vertexValue;\r\n var kf = this.keyframes;\r\n if (frameNum < kf[0].t - this.offsetTime) {\r\n keyPropS = kf[0].s[0];\r\n isHold = true;\r\n iterationIndex = 0;\r\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\r\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\r\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 } */\r\n isHold = true;\r\n } else {\r\n var i = iterationIndex;\r\n var len = kf.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n while (flag) {\r\n keyData = kf[i];\r\n nextKeyData = kf[i + 1];\r\n if ((nextKeyData.t - this.offsetTime) > frameNum) {\r\n break;\r\n }\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n isHold = keyData.h === 1;\r\n iterationIndex = i;\r\n if (!isHold) {\r\n if (frameNum >= nextKeyData.t - this.offsetTime) {\r\n perc = 1;\r\n } else if (frameNum < keyData.t - this.offsetTime) {\r\n perc = 0;\r\n } else {\r\n var fnc;\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\r\n keyframeMetadata.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / ((nextKeyData.t - this.offsetTime) - (keyData.t - this.offsetTime)));\r\n }\r\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\r\n }\r\n keyPropS = keyData.s[0];\r\n }\r\n jLen = previousValue._length;\r\n kLen = keyPropS.i[0].length;\r\n caching.lastIndex = iterationIndex;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n for (k = 0; k < kLen; k += 1) {\r\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\r\n previousValue.i[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\r\n previousValue.o[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\r\n previousValue.v[j][k] = vertexValue;\r\n }\r\n }\r\n }\r\n\r\n function interpolateShapeCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n var lastFrame = this._caching.lastFrame;\r\n if (!(lastFrame !== initFrame && ((lastFrame < initTime && frameNum < initTime) || (lastFrame > endTime && frameNum > endTime)))) {\r\n /// /\r\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\r\n this.interpolateShape(frameNum, this.pv, this._caching);\r\n /// /\r\n }\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function resetShape() {\r\n this.paths = this.localShapeCollection;\r\n }\r\n\r\n function shapesEqual(shape1, shape2) {\r\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\r\n return false;\r\n }\r\n var i;\r\n var len = shape1._length;\r\n for (i = 0; i < len; i += 1) {\r\n if (shape1.v[i][0] !== shape2.v[i][0]\r\n || shape1.v[i][1] !== shape2.v[i][1]\r\n || shape1.o[i][0] !== shape2.o[i][0]\r\n || shape1.o[i][1] !== shape2.o[i][1]\r\n || shape1.i[i][0] !== shape2.i[i][0]\r\n || shape1.i[i][1] !== shape2.i[i][1]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n function setVValue(newPath) {\r\n if (!shapesEqual(this.v, newPath)) {\r\n this.v = shapePool.clone(newPath);\r\n this.localShapeCollection.releaseShapes();\r\n this.localShapeCollection.addShape(this.v);\r\n this._mdf = true;\r\n this.paths = this.localShapeCollection;\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n } if (!this.effectsSequence.length) {\r\n this._mdf = false;\r\n return;\r\n }\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = false;\r\n var finalValue;\r\n if (this.kf) {\r\n finalValue = this.pv;\r\n } else if (this.data.ks) {\r\n finalValue = this.data.ks.k;\r\n } else {\r\n finalValue = this.data.pt.k;\r\n }\r\n var i;\r\n var len = this.effectsSequence.length;\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n this.setVValue(finalValue);\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function ShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.container = elem;\r\n this.elem = elem;\r\n this.data = data;\r\n this.k = false;\r\n this.kf = false;\r\n this._mdf = false;\r\n var pathData = type === 3 ? data.pt.k : data.ks.k;\r\n this.v = shapePool.clone(pathData);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.reset = resetShape;\r\n this.effectsSequence = [];\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n ShapeProperty.prototype.interpolateShape = interpolateShape;\r\n ShapeProperty.prototype.getValue = processEffectsSequence;\r\n ShapeProperty.prototype.setVValue = setVValue;\r\n ShapeProperty.prototype.addEffect = addEffect;\r\n\r\n function KeyframedShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.container = elem;\r\n this.offsetTime = elem.data.st;\r\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\r\n this.keyframesMetadata = [];\r\n this.k = true;\r\n this.kf = true;\r\n var len = this.keyframes[0].s[0].i.length;\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(this.keyframes[0].s[0].c, len);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.lastFrame = initFrame;\r\n this.reset = resetShape;\r\n this._caching = { lastFrame: initFrame, lastIndex: 0 };\r\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\r\n }\r\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\r\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\r\n KeyframedShapeProperty.prototype.setVValue = setVValue;\r\n KeyframedShapeProperty.prototype.addEffect = addEffect;\r\n\r\n var EllShapeProperty = (function () {\r\n var cPoint = roundCorner;\r\n\r\n function EllShapePropertyFactory(elem, data) {\r\n /* this.v = {\r\n v: createSizedArray(4),\r\n i: createSizedArray(4),\r\n o: createSizedArray(4),\r\n c: true\r\n }; */\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 4);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.localShapeCollection.addShape(this.v);\r\n this.d = data.d;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertEllToPath();\r\n }\r\n }\r\n\r\n EllShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertEllToPath();\r\n }\r\n },\r\n convertEllToPath: function () {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var s0 = this.s.v[0] / 2;\r\n var s1 = this.s.v[1] / 2;\r\n var _cw = this.d !== 3;\r\n var _v = this.v;\r\n _v.v[0][0] = p0;\r\n _v.v[0][1] = p1 - s1;\r\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.v[1][1] = p1;\r\n _v.v[2][0] = p0;\r\n _v.v[2][1] = p1 + s1;\r\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.v[3][1] = p1;\r\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.i[0][1] = p1 - s1;\r\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.i[1][1] = p1 - s1 * cPoint;\r\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.i[2][1] = p1 + s1;\r\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.i[3][1] = p1 + s1 * cPoint;\r\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.o[0][1] = p1 - s1;\r\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.o[1][1] = p1 + s1 * cPoint;\r\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.o[2][1] = p1 + s1;\r\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.o[3][1] = p1 - s1 * cPoint;\r\n },\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\r\n\r\n return EllShapePropertyFactory;\r\n }());\r\n\r\n var StarShapeProperty = (function () {\r\n function StarShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 0);\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.data = data;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n if (data.sy === 1) {\r\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\r\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\r\n this.convertToPath = this.convertStarToPath;\r\n } else {\r\n this.convertToPath = this.convertPolygonToPath;\r\n }\r\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\r\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\r\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertToPath();\r\n }\r\n }\r\n\r\n StarShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n if (this._mdf) {\r\n this.convertToPath();\r\n }\r\n },\r\n convertStarToPath: function () {\r\n var numPts = Math.floor(this.pt.v) * 2;\r\n var angle = (Math.PI * 2) / numPts;\r\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\r\n var longFlag = true;\r\n var longRad = this.or.v;\r\n var shortRad = this.ir.v;\r\n var longRound = this.os.v;\r\n var shortRound = this.is.v;\r\n var longPerimSegment = (2 * Math.PI * longRad) / (numPts * 2);\r\n var shortPerimSegment = (2 * Math.PI * shortRad) / (numPts * 2);\r\n var i;\r\n var rad;\r\n var roundness;\r\n var perimSegment;\r\n var currentAng = -Math.PI / 2;\r\n currentAng += this.r.v;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n this.v._length = 0;\r\n for (i = 0; i < numPts; i += 1) {\r\n rad = longFlag ? longRad : shortRad;\r\n roundness = longFlag ? longRound : shortRound;\r\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\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);\r\n\r\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; */\r\n longFlag = !longFlag;\r\n currentAng += angle * dir;\r\n }\r\n },\r\n convertPolygonToPath: function () {\r\n var numPts = Math.floor(this.pt.v);\r\n var angle = (Math.PI * 2) / numPts;\r\n var rad = this.or.v;\r\n var roundness = this.os.v;\r\n var perimSegment = (2 * Math.PI * rad) / (numPts * 4);\r\n var i;\r\n var currentAng = -Math.PI * 0.5;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n currentAng += this.r.v;\r\n this.v._length = 0;\r\n for (i = 0; i < numPts; i += 1) {\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\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);\r\n currentAng += angle * dir;\r\n }\r\n this.paths.length = 0;\r\n this.paths[0] = this.v;\r\n },\r\n\r\n };\r\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\r\n\r\n return StarShapePropertyFactory;\r\n }());\r\n\r\n var RectShapeProperty = (function () {\r\n function RectShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.c = true;\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertRectToPath();\r\n }\r\n }\r\n\r\n RectShapePropertyFactory.prototype = {\r\n convertRectToPath: function () {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var v0 = this.s.v[0] / 2;\r\n var v1 = this.s.v[1] / 2;\r\n var round = bmMin(v0, v1, this.r.v);\r\n var cPoint = round * (1 - roundCorner);\r\n this.v._length = 0;\r\n\r\n if (this.d === 2 || this.d === 1) {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\r\n }\r\n } else {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\r\n }\r\n }\r\n },\r\n getValue: function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n if (this._mdf) {\r\n this.convertRectToPath();\r\n }\r\n },\r\n reset: resetShape,\r\n };\r\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\r\n\r\n return RectShapePropertyFactory;\r\n }());\r\n\r\n function getShapeProp(elem, data, type) {\r\n var prop;\r\n if (type === 3 || type === 4) {\r\n var dataProp = type === 3 ? data.pt : data.ks;\r\n var keys = dataProp.k;\r\n if (keys.length) {\r\n prop = new KeyframedShapeProperty(elem, data, type);\r\n } else {\r\n prop = new ShapeProperty(elem, data, type);\r\n }\r\n } else if (type === 5) {\r\n prop = new RectShapeProperty(elem, data);\r\n } else if (type === 6) {\r\n prop = new EllShapeProperty(elem, data);\r\n } else if (type === 7) {\r\n prop = new StarShapeProperty(elem, data);\r\n }\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n return prop;\r\n }\r\n\r\n function getConstructorFunction() {\r\n return ShapeProperty;\r\n }\r\n\r\n function getKeyframedConstructorFunction() {\r\n return KeyframedShapeProperty;\r\n }\r\n\r\n var ob = {};\r\n ob.getShapeProp = getShapeProp;\r\n ob.getConstructorFunction = getConstructorFunction;\r\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\r\n return ob;\r\n}());\r\n\r\n/* global shapeCollectionPool, initialDefaultFrame, extendPrototype, DynamicPropertyContainer */\r\n/* exported ShapeModifiers */\r\n\r\nvar ShapeModifiers = (function () {\r\n var ob = {};\r\n var modifiers = {};\r\n ob.registerModifier = registerModifier;\r\n ob.getModifier = getModifier;\r\n\r\n function registerModifier(nm, factory) {\r\n if (!modifiers[nm]) {\r\n modifiers[nm] = factory;\r\n }\r\n }\r\n\r\n function getModifier(nm, elem, data) {\r\n return new modifiers[nm](elem, data);\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\nfunction ShapeModifier() {}\r\nShapeModifier.prototype.initModifierProperties = function () {};\r\nShapeModifier.prototype.addShapeToModifier = function () {};\r\nShapeModifier.prototype.addShape = function (data) {\r\n if (!this.closed) {\r\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.\r\n data.sh.container.addDynamicProperty(data.sh);\r\n var shapeData = { shape: data.sh, data: data, localShapeCollection: shapeCollectionPool.newShapeCollection() };\r\n this.shapes.push(shapeData);\r\n this.addShapeToModifier(shapeData);\r\n if (this._isAnimated) {\r\n data.setAsAnimated();\r\n }\r\n }\r\n};\r\nShapeModifier.prototype.init = function (elem, data) {\r\n this.shapes = [];\r\n this.elem = elem;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, data);\r\n this.frameId = initialDefaultFrame;\r\n this.closed = false;\r\n this.k = false;\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n};\r\nShapeModifier.prototype.processKeys = function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n};\r\n\r\nextendPrototype([DynamicPropertyContainer], ShapeModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, PropertyFactory, segmentsLengthPool, bez, shapePool, ShapeModifiers */\r\n\r\nfunction TrimModifier() {\r\n}\r\nextendPrototype([ShapeModifier], TrimModifier);\r\nTrimModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\r\n this.sValue = 0;\r\n this.eValue = 0;\r\n this.getValue = this.processKeys;\r\n this.m = data.m;\r\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\r\n};\r\n\r\nTrimModifier.prototype.addShapeToModifier = function (shapeData) {\r\n shapeData.pathsData = [];\r\n};\r\n\r\nTrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\r\n var segments = [];\r\n if (e <= 1) {\r\n segments.push({\r\n s: s,\r\n e: e,\r\n });\r\n } else if (s >= 1) {\r\n segments.push({\r\n s: s - 1,\r\n e: e - 1,\r\n });\r\n } else {\r\n segments.push({\r\n s: s,\r\n e: 1,\r\n });\r\n segments.push({\r\n s: 0,\r\n e: e - 1,\r\n });\r\n }\r\n var shapeSegments = [];\r\n var i;\r\n var len = segments.length;\r\n var segmentOb;\r\n for (i = 0; i < len; i += 1) {\r\n segmentOb = segments[i];\r\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\r\n var shapeS;\r\n var shapeE;\r\n if (segmentOb.s * totalModifierLength <= addedLength) {\r\n shapeS = 0;\r\n } else {\r\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\r\n shapeE = 1;\r\n } else {\r\n shapeE = ((segmentOb.e * totalModifierLength - addedLength) / shapeLength);\r\n }\r\n shapeSegments.push([shapeS, shapeE]);\r\n }\r\n }\r\n if (!shapeSegments.length) {\r\n shapeSegments.push([0, 0]);\r\n }\r\n return shapeSegments;\r\n};\r\n\r\nTrimModifier.prototype.releasePathsData = function (pathsData) {\r\n var i;\r\n var len = pathsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n segmentsLengthPool.release(pathsData[i]);\r\n }\r\n pathsData.length = 0;\r\n return pathsData;\r\n};\r\n\r\nTrimModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var s;\r\n var e;\r\n if (this._mdf || _isFirstFrame) {\r\n var o = (this.o.v % 360) / 360;\r\n if (o < 0) {\r\n o += 1;\r\n }\r\n if (this.s.v > 1) {\r\n s = 1 + o;\r\n } else if (this.s.v < 0) {\r\n s = 0 + o;\r\n } else {\r\n s = this.s.v + o;\r\n }\r\n if (this.e.v > 1) {\r\n e = 1 + o;\r\n } else if (this.e.v < 0) {\r\n e = 0 + o;\r\n } else {\r\n e = this.e.v + o;\r\n }\r\n\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n s = Math.round(s * 10000) * 0.0001;\r\n e = Math.round(e * 10000) * 0.0001;\r\n this.sValue = s;\r\n this.eValue = e;\r\n } else {\r\n s = this.sValue;\r\n e = this.eValue;\r\n }\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var pathsData;\r\n var pathData;\r\n var totalShapeLength;\r\n var totalModifierLength = 0;\r\n\r\n if (e === s) {\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].localShapeCollection.releaseShapes();\r\n this.shapes[i].shape._mdf = true;\r\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\r\n if (this._mdf) {\r\n this.shapes[i].pathsData.length = 0;\r\n }\r\n }\r\n } else if (!((e === 1 && s === 0) || (e === 0 && s === 1))) {\r\n var segments = [];\r\n var shapeData;\r\n var localShapeCollection;\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\r\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n } else {\r\n shapePaths = shapeData.shape.paths;\r\n jLen = shapePaths._length;\r\n totalShapeLength = 0;\r\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\r\n totalShapeLength = shapeData.totalShapeLength;\r\n } else {\r\n pathsData = this.releasePathsData(shapeData.pathsData);\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\r\n pathsData.push(pathData);\r\n totalShapeLength += pathData.totalLength;\r\n }\r\n shapeData.totalShapeLength = totalShapeLength;\r\n shapeData.pathsData = pathsData;\r\n }\r\n\r\n totalModifierLength += totalShapeLength;\r\n shapeData.shape._mdf = true;\r\n }\r\n }\r\n var shapeS = s;\r\n var shapeE = e;\r\n var addedLength = 0;\r\n var edges;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shapeData = this.shapes[i];\r\n if (shapeData.shape._mdf) {\r\n localShapeCollection = shapeData.localShapeCollection;\r\n localShapeCollection.releaseShapes();\r\n // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\r\n if (this.m === 2 && len > 1) {\r\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\r\n addedLength += shapeData.totalShapeLength;\r\n } else {\r\n edges = [[shapeS, shapeE]];\r\n }\r\n jLen = edges.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n shapeS = edges[j][0];\r\n shapeE = edges[j][1];\r\n segments.length = 0;\r\n if (shapeE <= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength * shapeE,\r\n });\r\n } else if (shapeS >= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * (shapeS - 1),\r\n e: shapeData.totalShapeLength * (shapeE - 1),\r\n });\r\n } else {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength,\r\n });\r\n segments.push({\r\n s: 0,\r\n e: shapeData.totalShapeLength * (shapeE - 1),\r\n });\r\n }\r\n var newShapesData = this.addShapes(shapeData, segments[0]);\r\n if (segments[0].s !== segments[0].e) {\r\n if (segments.length > 1) {\r\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\r\n if (lastShapeInCollection.c) {\r\n var lastShape = newShapesData.pop();\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\r\n } else {\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1]);\r\n }\r\n }\r\n this.addPaths(newShapesData, localShapeCollection);\r\n }\r\n }\r\n shapeData.shape.paths = localShapeCollection;\r\n }\r\n }\r\n } else if (this._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\r\n // Don't remove this even if it's losing cached info.\r\n this.shapes[i].pathsData.length = 0;\r\n this.shapes[i].shape._mdf = true;\r\n }\r\n }\r\n};\r\n\r\nTrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\r\n var i;\r\n var len = newPaths.length;\r\n for (i = 0; i < len; i += 1) {\r\n localShapeCollection.addShape(newPaths[i]);\r\n }\r\n};\r\n\r\nTrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\r\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\r\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\r\n if (newShape) {\r\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\r\n }\r\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\r\n};\r\n\r\nTrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\r\n shapePath.setXYAt(points[1], points[5], 'o', pos);\r\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\r\n if (newShape) {\r\n shapePath.setXYAt(points[0], points[4], 'v', pos);\r\n }\r\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\r\n};\r\n\r\nTrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\r\n var pathsData = shapeData.pathsData;\r\n var shapePaths = shapeData.shape.paths.shapes;\r\n var i;\r\n var len = shapeData.shape.paths._length;\r\n var j;\r\n var jLen;\r\n var addedLength = 0;\r\n var currentLengthData;\r\n var segmentCount;\r\n var lengths;\r\n var segment;\r\n var shapes = [];\r\n var initPos;\r\n var newShape = true;\r\n if (!shapePath) {\r\n shapePath = shapePool.newElement();\r\n segmentCount = 0;\r\n initPos = 0;\r\n } else {\r\n segmentCount = shapePath._length;\r\n initPos = shapePath._length;\r\n }\r\n shapes.push(shapePath);\r\n for (i = 0; i < len; i += 1) {\r\n lengths = pathsData[i].lengths;\r\n shapePath.c = shapePaths[i].c;\r\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\r\n for (j = 1; j < jLen; j += 1) {\r\n currentLengthData = lengths[j - 1];\r\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\r\n addedLength += currentLengthData.addedLength;\r\n shapePath.c = false;\r\n } else if (addedLength > shapeSegment.e) {\r\n shapePath.c = false;\r\n break;\r\n } else {\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\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]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\r\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n }\r\n if (shapePaths[i].c && lengths.length) {\r\n currentLengthData = lengths[j - 1];\r\n if (addedLength <= shapeSegment.e) {\r\n var segmentLength = lengths[j - 1].addedLength;\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\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]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\r\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n } else {\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n if (shapePath._length) {\r\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\r\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\r\n }\r\n if (addedLength > shapeSegment.e) {\r\n break;\r\n }\r\n if (i < len - 1) {\r\n shapePath = shapePool.newElement();\r\n newShape = true;\r\n shapes.push(shapePath);\r\n segmentCount = 0;\r\n }\r\n }\r\n return shapes;\r\n};\r\n\r\nShapeModifiers.registerModifier('tm', TrimModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, roundCorner, ShapeModifiers */\r\n\r\nfunction RoundCornersModifier() {}\r\nextendPrototype([ShapeModifier], RoundCornersModifier);\r\nRoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\r\n this._isAnimated = !!this.rd.effectsSequence.length;\r\n};\r\n\r\nRoundCornersModifier.prototype.processPath = function (path, round) {\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var i;\r\n var len = path._length;\r\n var currentV;\r\n var currentI;\r\n var currentO;\r\n var closerV;\r\n var distance;\r\n var newPosPerc;\r\n var index = 0;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n for (i = 0; i < len; i += 1) {\r\n currentV = path.v[i];\r\n currentO = path.o[i];\r\n currentI = path.i[i];\r\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\r\n if ((i === 0 || i === len - 1) && !path.c) {\r\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\r\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\r\n index += 1;\r\n } else {\r\n if (i === 0) {\r\n closerV = path.v[len - 1];\r\n } else {\r\n closerV = path.v[i - 1];\r\n }\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = iX;\r\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\r\n vY = iY;\r\n oX = vX - (vX - currentV[0]) * roundCorner;\r\n oY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n\r\n if (i === len - 1) {\r\n closerV = path.v[0];\r\n } else {\r\n closerV = path.v[i + 1];\r\n }\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = oX;\r\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\r\n vY = oY;\r\n iX = vX - (vX - currentV[0]) * roundCorner;\r\n iY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n }\r\n } else {\r\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);\r\n index += 1;\r\n }\r\n }\r\n return clonedPath;\r\n};\r\n\r\nRoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var rd = this.rd.v;\r\n\r\n if (rd !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\r\n }\r\n }\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n};\r\n\r\nShapeModifiers.registerModifier('rd', RoundCornersModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, ShapeModifiers */\r\n\r\nfunction PuckerAndBloatModifier() {}\r\nextendPrototype([ShapeModifier], PuckerAndBloatModifier);\r\nPuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\r\n this._isAnimated = !!this.amount.effectsSequence.length;\r\n};\r\n\r\nPuckerAndBloatModifier.prototype.processPath = function (path, amount) {\r\n var percent = amount / 100;\r\n var centerPoint = [0, 0];\r\n var pathLength = path._length;\r\n var i = 0;\r\n for (i = 0; i < pathLength; i += 1) {\r\n centerPoint[0] += path.v[i][0];\r\n centerPoint[1] += path.v[i][1];\r\n }\r\n centerPoint[0] /= pathLength;\r\n centerPoint[1] /= pathLength;\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n for (i = 0; i < pathLength; i += 1) {\r\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\r\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\r\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\r\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\r\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\r\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\r\n }\r\n return clonedPath;\r\n};\r\n\r\nPuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amount = this.amount.v;\r\n\r\n if (amount !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\r\n }\r\n }\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n};\r\nShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, TransformPropertyFactory, PropertyFactory, Matrix, ShapeModifiers */\r\n\r\nfunction RepeaterModifier() {}\r\nextendPrototype([ShapeModifier], RepeaterModifier);\r\n\r\nRepeaterModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\r\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\r\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\r\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\r\n this.data = data;\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n this._isAnimated = !!this.dynamicProperties.length;\r\n this.pMatrix = new Matrix();\r\n this.rMatrix = new Matrix();\r\n this.sMatrix = new Matrix();\r\n this.tMatrix = new Matrix();\r\n this.matrix = new Matrix();\r\n};\r\n\r\nRepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\r\n var dir = inv ? -1 : 1;\r\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\r\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\r\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\r\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n rMatrix.rotate(-transform.r.v * dir * perc);\r\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\r\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n};\r\n\r\nRepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\r\n this.elem = elem;\r\n this.arr = arr;\r\n this.pos = pos;\r\n this.elemsData = elemsData;\r\n this._currentCopies = 0;\r\n this._elements = [];\r\n this._groups = [];\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, arr[pos]);\r\n while (pos > 0) {\r\n pos -= 1;\r\n // this._elements.unshift(arr.splice(pos,1)[0]);\r\n this._elements.unshift(arr[pos]);\r\n }\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.resetElements = function (elements) {\r\n var i;\r\n var len = elements.length;\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._processed = false;\r\n if (elements[i].ty === 'gr') {\r\n this.resetElements(elements[i].it);\r\n }\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.cloneElements = function (elements) {\r\n var newElements = JSON.parse(JSON.stringify(elements));\r\n this.resetElements(newElements);\r\n return newElements;\r\n};\r\n\r\nRepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\r\n var i;\r\n var len = elements.length;\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._render = renderFlag;\r\n if (elements[i].ty === 'gr') {\r\n this.changeGroupRender(elements[i].it, renderFlag);\r\n }\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var items;\r\n var itemsTransform;\r\n var i;\r\n var dir;\r\n var cont;\r\n var hasReloaded = false;\r\n if (this._mdf || _isFirstFrame) {\r\n var copies = Math.ceil(this.c.v);\r\n if (this._groups.length < copies) {\r\n while (this._groups.length < copies) {\r\n var group = {\r\n it: this.cloneElements(this._elements),\r\n ty: 'gr',\r\n };\r\n group.it.push({\r\n a: { a: 0, ix: 1, k: [0, 0] }, nm: 'Transform', o: { a: 0, ix: 7, k: 100 }, p: { a: 0, ix: 2, k: [0, 0] }, r: { a: 1, ix: 6, k: [{ s: 0, e: 0, t: 0 }, { s: 0, e: 0, t: 1 }] }, s: { a: 0, ix: 3, k: [100, 100] }, sa: { a: 0, ix: 5, k: 0 }, sk: { a: 0, ix: 4, k: 0 }, ty: 'tr',\r\n });\r\n\r\n this.arr.splice(0, 0, group);\r\n this._groups.splice(0, 0, group);\r\n this._currentCopies += 1;\r\n }\r\n this.elem.reloadShapes();\r\n hasReloaded = true;\r\n }\r\n cont = 0;\r\n var renderFlag;\r\n for (i = 0; i <= this._groups.length - 1; i += 1) {\r\n renderFlag = cont < copies;\r\n this._groups[i]._render = renderFlag;\r\n this.changeGroupRender(this._groups[i].it, renderFlag);\r\n if (!renderFlag) {\r\n var elems = this.elemsData[i].it;\r\n var transformData = elems[elems.length - 1];\r\n if (transformData.transform.op.v !== 0) {\r\n transformData.transform.op._mdf = true;\r\n transformData.transform.op.v = 0;\r\n } else {\r\n transformData.transform.op._mdf = false;\r\n }\r\n }\r\n cont += 1;\r\n }\r\n\r\n this._currentCopies = copies;\r\n /// /\r\n\r\n var offset = this.o.v;\r\n var offsetModulo = offset % 1;\r\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\r\n var pProps = this.pMatrix.props;\r\n var rProps = this.rMatrix.props;\r\n var sProps = this.sMatrix.props;\r\n this.pMatrix.reset();\r\n this.rMatrix.reset();\r\n this.sMatrix.reset();\r\n this.tMatrix.reset();\r\n this.matrix.reset();\r\n var iteration = 0;\r\n\r\n if (offset > 0) {\r\n while (iteration < roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n iteration += 1;\r\n }\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\r\n iteration += offsetModulo;\r\n }\r\n } else if (offset < 0) {\r\n while (iteration > roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\r\n iteration -= 1;\r\n }\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\r\n iteration -= offsetModulo;\r\n }\r\n }\r\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\r\n dir = this.data.m === 1 ? 1 : -1;\r\n cont = this._currentCopies;\r\n var j;\r\n var jLen;\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n jLen = itemsTransform.length;\r\n items[items.length - 1].transform.mProps._mdf = true;\r\n items[items.length - 1].transform.op._mdf = true;\r\n items[items.length - 1].transform.op.v = this._currentCopies === 1\r\n ? this.so.v\r\n : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\r\n\r\n if (iteration !== 0) {\r\n if ((i !== 0 && dir === 1) || (i !== this._currentCopies - 1 && dir === -1)) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n }\r\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]);\r\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]);\r\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]);\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n this.matrix.reset();\r\n } else {\r\n this.matrix.reset();\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n }\r\n iteration += 1;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n } else {\r\n cont = this._currentCopies;\r\n i = 0;\r\n dir = 1;\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n items[items.length - 1].transform.mProps._mdf = false;\r\n items[items.length - 1].transform.op._mdf = false;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n }\r\n return hasReloaded;\r\n};\r\n\r\nRepeaterModifier.prototype.addShape = function () {};\r\n\r\nShapeModifiers.registerModifier('rp', RepeaterModifier);\r\n\r\n/* global createSizedArray, shapePool */\r\n\r\nfunction ShapeCollection() {\r\n this._length = 0;\r\n this._maxLength = 4;\r\n this.shapes = createSizedArray(this._maxLength);\r\n}\r\n\r\nShapeCollection.prototype.addShape = function (shapeData) {\r\n if (this._length === this._maxLength) {\r\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n }\r\n this.shapes[this._length] = shapeData;\r\n this._length += 1;\r\n};\r\n\r\nShapeCollection.prototype.releaseShapes = function () {\r\n var i;\r\n for (i = 0; i < this._length; i += 1) {\r\n shapePool.release(this.shapes[i]);\r\n }\r\n this._length = 0;\r\n};\r\n\r\n/* global createSizedArray, createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction DashProperty(elem, data, renderer, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.dataProps = createSizedArray(data.length);\r\n this.renderer = renderer;\r\n this.k = false;\r\n this.dashStr = '';\r\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\r\n this.dashoffset = createTypedArray('float32', 1);\r\n this.initDynamicPropertyContainer(container);\r\n var i;\r\n var len = data.length || 0;\r\n var prop;\r\n for (i = 0; i < len; i += 1) {\r\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\r\n this.k = prop.k || this.k;\r\n this.dataProps[i] = { n: data[i].n, p: prop };\r\n }\r\n if (!this.k) {\r\n this.getValue(true);\r\n }\r\n this._isAnimated = this.k;\r\n}\r\n\r\nDashProperty.prototype.getValue = function (forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || forceRender;\r\n if (this._mdf) {\r\n var i = 0;\r\n var len = this.dataProps.length;\r\n if (this.renderer === 'svg') {\r\n this.dashStr = '';\r\n }\r\n for (i = 0; i < len; i += 1) {\r\n if (this.dataProps[i].n !== 'o') {\r\n if (this.renderer === 'svg') {\r\n this.dashStr += ' ' + this.dataProps[i].p.v;\r\n } else {\r\n this.dashArray[i] = this.dataProps[i].p.v;\r\n }\r\n } else {\r\n this.dashoffset[0] = this.dataProps[i].p.v;\r\n }\r\n }\r\n }\r\n};\r\nextendPrototype([DynamicPropertyContainer], DashProperty);\r\n\r\n/* global createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\nfunction GradientProperty(elem, data, container) {\r\n this.data = data;\r\n this.c = createTypedArray('uint8c', data.p * 4);\r\n var cLength = data.k.k[0].s ? (data.k.k[0].s.length - data.p * 4) : data.k.k.length - data.p * 4;\r\n this.o = createTypedArray('float32', cLength);\r\n this._cmdf = false;\r\n this._omdf = false;\r\n this._collapsable = this.checkCollapsable();\r\n this._hasOpacity = cLength;\r\n this.initDynamicPropertyContainer(container);\r\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\r\n this.k = this.prop.k;\r\n this.getValue(true);\r\n}\r\n\r\nGradientProperty.prototype.comparePoints = function (values, points) {\r\n var i = 0;\r\n var len = this.o.length / 2;\r\n var diff;\r\n while (i < len) {\r\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\r\n if (diff > 0.01) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n return true;\r\n};\r\n\r\nGradientProperty.prototype.checkCollapsable = function () {\r\n if (this.o.length / 2 !== this.c.length / 4) {\r\n return false;\r\n }\r\n if (this.data.k.k[0].s) {\r\n var i = 0;\r\n var len = this.data.k.k.length;\r\n while (i < len) {\r\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\nGradientProperty.prototype.getValue = function (forceRender) {\r\n this.prop.getValue();\r\n this._mdf = false;\r\n this._cmdf = false;\r\n this._omdf = false;\r\n if (this.prop._mdf || forceRender) {\r\n var i;\r\n var len = this.data.p * 4;\r\n var mult;\r\n var val;\r\n for (i = 0; i < len; i += 1) {\r\n mult = i % 4 === 0 ? 100 : 255;\r\n val = Math.round(this.prop.v[i] * mult);\r\n if (this.c[i] !== val) {\r\n this.c[i] = val;\r\n this._cmdf = !forceRender;\r\n }\r\n }\r\n if (this.o.length) {\r\n len = this.prop.v.length;\r\n for (i = this.data.p * 4; i < len; i += 1) {\r\n mult = i % 2 === 0 ? 100 : 1;\r\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\r\n if (this.o[i - this.data.p * 4] !== val) {\r\n this.o[i - this.data.p * 4] = val;\r\n this._omdf = !forceRender;\r\n }\r\n }\r\n }\r\n this._mdf = !forceRender;\r\n }\r\n};\r\n\r\nextendPrototype([DynamicPropertyContainer], GradientProperty);\r\n\r\n/* exported buildShapeString */\r\n\r\nvar buildShapeString = function (pathNodes, length, closed, mat) {\r\n if (length === 0) {\r\n return '';\r\n }\r\n var _o = pathNodes.o;\r\n var _i = pathNodes.i;\r\n var _v = pathNodes.v;\r\n var i;\r\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\r\n for (i = 1; i < length; i += 1) {\r\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]);\r\n }\r\n if (closed && length) {\r\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]);\r\n shapeString += 'z';\r\n }\r\n return shapeString;\r\n};\r\n\r\n/* global Howl */\r\n/* exported audioControllerFactory */\r\n\r\nvar audioControllerFactory = (function () {\r\n function AudioController(audioFactory) {\r\n this.audios = [];\r\n this.audioFactory = audioFactory;\r\n this._volume = 1;\r\n this._isMuted = false;\r\n }\r\n\r\n AudioController.prototype = {\r\n addAudio: function (audio) {\r\n this.audios.push(audio);\r\n },\r\n pause: function () {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].pause();\r\n }\r\n },\r\n resume: function () {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].resume();\r\n }\r\n },\r\n setRate: function (rateValue) {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].setRate(rateValue);\r\n }\r\n },\r\n createAudio: function (assetPath) {\r\n if (this.audioFactory) {\r\n return this.audioFactory(assetPath);\r\n } if (Howl) {\r\n return new Howl({\r\n src: [assetPath],\r\n });\r\n }\r\n return {\r\n isPlaying: false,\r\n play: function () { this.isPlaying = true; },\r\n seek: function () { this.isPlaying = false; },\r\n playing: function () {},\r\n rate: function () {},\r\n setVolume: function () {},\r\n };\r\n },\r\n setAudioFactory: function (audioFactory) {\r\n this.audioFactory = audioFactory;\r\n },\r\n setVolume: function (value) {\r\n this._volume = value;\r\n this._updateVolume();\r\n },\r\n mute: function () {\r\n this._isMuted = true;\r\n this._updateVolume();\r\n },\r\n unmute: function () {\r\n this._isMuted = false;\r\n this._updateVolume();\r\n },\r\n getVolume: function () {\r\n return this._volume;\r\n },\r\n _updateVolume: function () {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\r\n }\r\n },\r\n };\r\n\r\n return function () {\r\n return new AudioController();\r\n };\r\n}());\r\n\r\n/* global createTag, createNS, isSafari, dataManager */\r\n/* exported ImagePreloader */\r\n\r\nvar ImagePreloader = (function () {\r\n var proxyImage = (function () {\r\n var canvas = createTag('canvas');\r\n canvas.width = 1;\r\n canvas.height = 1;\r\n var ctx = canvas.getContext('2d');\r\n ctx.fillStyle = 'rgba(0,0,0,0)';\r\n ctx.fillRect(0, 0, 1, 1);\r\n return canvas;\r\n }());\r\n\r\n function imageLoaded() {\r\n this.loadedAssets += 1;\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n function footageLoaded() {\r\n this.loadedFootagesCount += 1;\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n\r\n function getAssetsPath(assetData, assetsPath, originalPath) {\r\n var path = '';\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (assetsPath) {\r\n var imagePath = assetData.p;\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n path = assetsPath + imagePath;\r\n } else {\r\n path = originalPath;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n return path;\r\n }\r\n\r\n function testImageLoaded(img) {\r\n var _count = 0;\r\n var intervalId = setInterval(function () {\r\n var box = img.getBBox();\r\n if (box.width || _count > 500) {\r\n this._imageLoaded();\r\n clearInterval(intervalId);\r\n }\r\n _count += 1;\r\n }.bind(this), 50);\r\n }\r\n\r\n function createImageData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createNS('image');\r\n if (isSafari) {\r\n this.testImageLoaded(img);\r\n } else {\r\n img.addEventListener('load', this._imageLoaded, false);\r\n }\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\r\n if (this._elementHelper.append) {\r\n this._elementHelper.append(img);\r\n } else {\r\n this._elementHelper.appendChild(img);\r\n }\r\n var ob = {\r\n img: img,\r\n assetData: assetData,\r\n };\r\n return ob;\r\n }\r\n\r\n function createImgData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createTag('img');\r\n img.crossOrigin = 'anonymous';\r\n img.addEventListener('load', this._imageLoaded, false);\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.src = path;\r\n var ob = {\r\n img: img,\r\n assetData: assetData,\r\n };\r\n return ob;\r\n }\r\n\r\n function createFootageData(data) {\r\n var ob = {\r\n assetData: data,\r\n };\r\n var path = getAssetsPath(data, this.assetsPath, this.path);\r\n dataManager.loadData(path, function (footageData) {\r\n ob.img = footageData;\r\n this._footageLoaded();\r\n }.bind(this), function () {\r\n ob.img = {};\r\n this._footageLoaded();\r\n }.bind(this));\r\n return ob;\r\n }\r\n\r\n function loadAssets(assets, cb) {\r\n this.imagesLoadedCb = cb;\r\n var i;\r\n var len = assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (!assets[i].layers) {\r\n if (!assets[i].t || assets[i].t === 'seq') {\r\n this.totalImages += 1;\r\n this.images.push(this._createImageData(assets[i]));\r\n } else if (assets[i].t === 3) {\r\n this.totalFootages += 1;\r\n this.images.push(this.createFootageData(assets[i]));\r\n }\r\n }\r\n }\r\n }\r\n\r\n function setPath(path) {\r\n this.path = path || '';\r\n }\r\n\r\n function setAssetsPath(path) {\r\n this.assetsPath = path || '';\r\n }\r\n\r\n function getAsset(assetData) {\r\n var i = 0;\r\n var len = this.images.length;\r\n while (i < len) {\r\n if (this.images[i].assetData === assetData) {\r\n return this.images[i].img;\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n\r\n function destroy() {\r\n this.imagesLoadedCb = null;\r\n this.images.length = 0;\r\n }\r\n\r\n function loadedImages() {\r\n return this.totalImages === this.loadedAssets;\r\n }\r\n\r\n function loadedFootages() {\r\n return this.totalFootages === this.loadedFootagesCount;\r\n }\r\n\r\n function setCacheType(type, elementHelper) {\r\n if (type === 'svg') {\r\n this._elementHelper = elementHelper;\r\n this._createImageData = this.createImageData.bind(this);\r\n } else {\r\n this._createImageData = this.createImgData.bind(this);\r\n }\r\n }\r\n\r\n function ImagePreloaderFactory() {\r\n this._imageLoaded = imageLoaded.bind(this);\r\n this._footageLoaded = footageLoaded.bind(this);\r\n this.testImageLoaded = testImageLoaded.bind(this);\r\n this.createFootageData = createFootageData.bind(this);\r\n this.assetsPath = '';\r\n this.path = '';\r\n this.totalImages = 0;\r\n this.totalFootages = 0;\r\n this.loadedAssets = 0;\r\n this.loadedFootagesCount = 0;\r\n this.imagesLoadedCb = null;\r\n this.images = [];\r\n }\r\n\r\n ImagePreloaderFactory.prototype = {\r\n loadAssets: loadAssets,\r\n setAssetsPath: setAssetsPath,\r\n setPath: setPath,\r\n loadedImages: loadedImages,\r\n loadedFootages: loadedFootages,\r\n destroy: destroy,\r\n getAsset: getAsset,\r\n createImgData: createImgData,\r\n createImageData: createImageData,\r\n imageLoaded: imageLoaded,\r\n footageLoaded: footageLoaded,\r\n setCacheType: setCacheType,\r\n };\r\n\r\n return ImagePreloaderFactory;\r\n}());\r\n\r\n/* exported featureSupport */\r\n\r\nvar featureSupport = (function () {\r\n var ob = {\r\n maskType: true,\r\n };\r\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)) {\r\n ob.maskType = false;\r\n }\r\n return ob;\r\n}());\r\n\r\n/* global createNS */\r\n/* exported filtersFactory */\r\n\r\nvar filtersFactory = (function () {\r\n var ob = {};\r\n ob.createFilter = createFilter;\r\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\r\n\r\n function createFilter(filId, skipCoordinates) {\r\n var fil = createNS('filter');\r\n fil.setAttribute('id', filId);\r\n if (skipCoordinates !== true) {\r\n fil.setAttribute('filterUnits', 'objectBoundingBox');\r\n fil.setAttribute('x', '0%');\r\n fil.setAttribute('y', '0%');\r\n fil.setAttribute('width', '100%');\r\n fil.setAttribute('height', '100%');\r\n }\r\n return fil;\r\n }\r\n\r\n function createAlphaToLuminanceFilter() {\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\r\n return feColorMatrix;\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\n/* global createSizedArray, PropertyFactory, TextAnimatorDataProperty, bez, addHueToRGB,\r\n addSaturationToRGB, addBrightnessToRGB, LetterProps, Matrix, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction TextAnimatorProperty(textData, renderType, elem) {\r\n this._isFirstFrame = true;\r\n this._hasMaskedPath = false;\r\n this._frameId = -1;\r\n this._textData = textData;\r\n this._renderType = renderType;\r\n this._elem = elem;\r\n this._animatorsData = createSizedArray(this._textData.a.length);\r\n this._pathData = {};\r\n this._moreOptions = {\r\n alignment: {},\r\n };\r\n this.renderedLetters = [];\r\n this.lettersChangedFlag = false;\r\n this.initDynamicPropertyContainer(elem);\r\n}\r\n\r\nTextAnimatorProperty.prototype.searchProperties = function () {\r\n var i;\r\n var len = this._textData.a.length;\r\n var animatorProps;\r\n var getProp = PropertyFactory.getProp;\r\n for (i = 0; i < len; i += 1) {\r\n animatorProps = this._textData.a[i];\r\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\r\n }\r\n if (this._textData.p && 'm' in this._textData.p) {\r\n this._pathData = {\r\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\r\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\r\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\r\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\r\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\r\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m),\r\n };\r\n this._hasMaskedPath = true;\r\n } else {\r\n this._hasMaskedPath = false;\r\n }\r\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\r\n};\r\n\r\nTextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\r\n this.lettersChangedFlag = lettersChangedFlag;\r\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\r\n return;\r\n }\r\n this._isFirstFrame = false;\r\n var alignment = this._moreOptions.alignment.v;\r\n var animators = this._animatorsData;\r\n var textData = this._textData;\r\n var matrixHelper = this.mHelper;\r\n var renderType = this._renderType;\r\n var renderedLettersCount = this.renderedLetters.length;\r\n var xPos;\r\n var yPos;\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var pathInfo;\r\n var currentLength;\r\n var currentPoint;\r\n var segmentLength;\r\n var flag;\r\n var pointInd;\r\n var segmentInd;\r\n var prevPoint;\r\n var points;\r\n var segments;\r\n var partialLength;\r\n var totalLength;\r\n var perc;\r\n var tanAngle;\r\n var mask;\r\n if (this._hasMaskedPath) {\r\n mask = this._pathData.m;\r\n if (!this._pathData.n || this._pathData._mdf) {\r\n var paths = mask.v;\r\n if (this._pathData.r.v) {\r\n paths = paths.reverse();\r\n }\r\n // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\r\n pathInfo = {\r\n tLength: 0,\r\n segments: [],\r\n };\r\n len = paths._length - 1;\r\n var bezierData;\r\n totalLength = 0;\r\n for (i = 0; i < len; i += 1) {\r\n bezierData = bez.buildBezierData(paths.v[i],\r\n paths.v[i + 1],\r\n [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]],\r\n [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n i = len;\r\n if (mask.v.c) {\r\n bezierData = bez.buildBezierData(paths.v[i],\r\n paths.v[0],\r\n [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]],\r\n [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n this._pathData.pi = pathInfo;\r\n }\r\n pathInfo = this._pathData.pi;\r\n\r\n currentLength = this._pathData.f.v;\r\n segmentInd = 0;\r\n pointInd = 1;\r\n segmentLength = 0;\r\n flag = true;\r\n segments = pathInfo.segments;\r\n if (currentLength < 0 && mask.v.c) {\r\n if (pathInfo.tLength < Math.abs(currentLength)) {\r\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\r\n }\r\n segmentInd = segments.length - 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n while (currentLength < 0) {\r\n currentLength += points[pointInd].partialLength;\r\n pointInd -= 1;\r\n if (pointInd < 0) {\r\n segmentInd -= 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n }\r\n }\r\n }\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n\r\n len = letters.length;\r\n xPos = 0;\r\n yPos = 0;\r\n var yOff = documentData.finalSize * 1.2 * 0.714;\r\n var firstLine = true;\r\n var animatorProps;\r\n var animatorSelector;\r\n var j;\r\n var jLen;\r\n var letterValue;\r\n\r\n jLen = animators.length;\r\n\r\n var mult;\r\n var ind = -1;\r\n var offf;\r\n var xPathPos;\r\n var yPathPos;\r\n var initPathPos = currentLength;\r\n var initSegmentInd = segmentInd;\r\n var initPointInd = pointInd;\r\n var currentLine = -1;\r\n var elemOpacity;\r\n var sc;\r\n var sw;\r\n var fc;\r\n var k;\r\n var letterSw;\r\n var letterSc;\r\n var letterFc;\r\n var letterM = '';\r\n var letterP = this.defaultPropsArray;\r\n var letterO;\r\n\r\n //\r\n if (documentData.j === 2 || documentData.j === 1) {\r\n var animatorJustifyOffset = 0;\r\n var animatorFirstCharOffset = 0;\r\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\r\n var lastIndex = 0;\r\n var isNewLine = true;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n animatorJustifyOffset = 0;\r\n isNewLine = true;\r\n } else {\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.t.propType) {\r\n if (isNewLine && documentData.j === 2) {\r\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\r\n }\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (mult.length) {\r\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\r\n } else {\r\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\r\n }\r\n }\r\n }\r\n isNewLine = false;\r\n }\r\n }\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n }\r\n //\r\n\r\n for (i = 0; i < len; i += 1) {\r\n matrixHelper.reset();\r\n elemOpacity = 1;\r\n if (letters[i].n) {\r\n xPos = 0;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n currentLength = initPathPos;\r\n firstLine = false;\r\n if (this._hasMaskedPath) {\r\n segmentInd = initSegmentInd;\r\n pointInd = initPointInd;\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n segmentLength = 0;\r\n }\r\n letterM = '';\r\n letterFc = '';\r\n letterSw = '';\r\n letterO = '';\r\n letterP = this.defaultPropsArray;\r\n } else {\r\n if (this._hasMaskedPath) {\r\n if (currentLine !== letters[i].line) {\r\n switch (documentData.j) {\r\n case 1:\r\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\r\n break;\r\n case 2:\r\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\r\n break;\r\n default:\r\n break;\r\n }\r\n currentLine = letters[i].line;\r\n }\r\n if (ind !== letters[i].ind) {\r\n if (letters[ind]) {\r\n currentLength += letters[ind].extra;\r\n }\r\n currentLength += letters[i].an / 2;\r\n ind = letters[i].ind;\r\n }\r\n currentLength += (alignment[0] * letters[i].an) * 0.005;\r\n var animatorOffset = 0;\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (mult.length) {\r\n animatorOffset += animatorProps.p.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.p.v[0] * mult;\r\n }\r\n }\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (mult.length) {\r\n animatorOffset += animatorProps.a.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.a.v[0] * mult;\r\n }\r\n }\r\n }\r\n flag = true;\r\n // Force alignment only works with a single line for now\r\n if (this._pathData.a.v) {\r\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);\r\n currentLength += this._pathData.f.v;\r\n }\r\n while (flag) {\r\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\r\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\r\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\r\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\r\n matrixHelper.translate((-alignment[0] * letters[i].an) * 0.005, -(alignment[1] * yOff) * 0.01);\r\n flag = false;\r\n } else if (points) {\r\n segmentLength += currentPoint.partialLength;\r\n pointInd += 1;\r\n if (pointInd >= points.length) {\r\n pointInd = 0;\r\n segmentInd += 1;\r\n if (!segments[segmentInd]) {\r\n if (mask.v.c) {\r\n pointInd = 0;\r\n segmentInd = 0;\r\n points = segments[segmentInd].points;\r\n } else {\r\n segmentLength -= currentPoint.partialLength;\r\n points = null;\r\n }\r\n } else {\r\n points = segments[segmentInd].points;\r\n }\r\n }\r\n if (points) {\r\n prevPoint = currentPoint;\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n }\r\n }\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n } else {\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n\r\n // Grouping alignment\r\n matrixHelper.translate((-alignment[0] * letters[i].an) * 0.005, (-alignment[1] * yOff) * 0.01, 0);\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.t.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\r\n if (xPos !== 0 || documentData.j !== 0) {\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n currentLength += animatorProps.t.v * mult[0];\r\n } else {\r\n currentLength += animatorProps.t.v * mult;\r\n }\r\n } else if (mult.length) {\r\n xPos += animatorProps.t.v * mult[0];\r\n } else {\r\n xPos += animatorProps.t.v * mult;\r\n }\r\n }\r\n }\r\n }\r\n if (documentData.strokeWidthAnim) {\r\n sw = documentData.sw || 0;\r\n }\r\n if (documentData.strokeColorAnim) {\r\n if (documentData.sc) {\r\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\r\n } else {\r\n sc = [0, 0, 0];\r\n }\r\n }\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\r\n }\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\r\n }\r\n }\r\n }\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.s.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (mult.length) {\r\n matrixHelper.scale(1 + ((animatorProps.s.v[0] - 1) * mult[0]), 1 + ((animatorProps.s.v[1] - 1) * mult[1]), 1);\r\n } else {\r\n matrixHelper.scale(1 + ((animatorProps.s.v[0] - 1) * mult), 1 + ((animatorProps.s.v[1] - 1) * mult), 1);\r\n }\r\n }\r\n }\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (animatorProps.sk.propType) {\r\n if (mult.length) {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\r\n } else {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\r\n }\r\n }\r\n if (animatorProps.r.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\r\n } else {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\r\n }\r\n }\r\n if (animatorProps.ry.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\r\n } else {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult);\r\n }\r\n }\r\n if (animatorProps.rx.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\r\n } else {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult);\r\n }\r\n }\r\n if (animatorProps.o.propType) {\r\n if (mult.length) {\r\n elemOpacity += ((animatorProps.o.v) * mult[0] - elemOpacity) * mult[0];\r\n } else {\r\n elemOpacity += ((animatorProps.o.v) * mult - elemOpacity) * mult;\r\n }\r\n }\r\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\r\n if (mult.length) {\r\n sw += animatorProps.sw.v * mult[0];\r\n } else {\r\n sw += animatorProps.sw.v * mult;\r\n }\r\n }\r\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\r\n } else {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\r\n }\r\n }\r\n }\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n if (animatorProps.fc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\r\n } else {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\r\n }\r\n }\r\n }\r\n if (animatorProps.fh.propType) {\r\n if (mult.length) {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\r\n } else {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\r\n }\r\n }\r\n if (animatorProps.fs.propType) {\r\n if (mult.length) {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\r\n } else {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\r\n }\r\n }\r\n if (animatorProps.fb.propType) {\r\n if (mult.length) {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\r\n } else {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\r\n } else {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n } else if (mult.length) {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n }\r\n }\r\n if (documentData.strokeWidthAnim) {\r\n letterSw = sw < 0 ? 0 : sw;\r\n }\r\n if (documentData.strokeColorAnim) {\r\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\r\n }\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\r\n }\r\n\r\n if (this._hasMaskedPath) {\r\n matrixHelper.translate(0, -documentData.ls);\r\n\r\n matrixHelper.translate(0, (alignment[1] * yOff) * 0.01 + yPos, 0);\r\n if (this._pathData.p.v) {\r\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\r\n var rot = (Math.atan(tanAngle) * 180) / Math.PI;\r\n if (currentPoint.point[0] < prevPoint.point[0]) {\r\n rot += 180;\r\n }\r\n matrixHelper.rotate((-rot * Math.PI) / 180);\r\n }\r\n matrixHelper.translate(xPathPos, yPathPos, 0);\r\n currentLength -= (alignment[0] * letters[i].an) * 0.005;\r\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\r\n currentLength += letters[i].an / 2;\r\n currentLength += (documentData.tr * 0.001) * documentData.finalSize;\r\n }\r\n } else {\r\n matrixHelper.translate(xPos, yPos, 0);\r\n\r\n if (documentData.ps) {\r\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\r\n break;\r\n case 2:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\r\n break;\r\n default:\r\n break;\r\n }\r\n matrixHelper.translate(0, -documentData.ls);\r\n matrixHelper.translate(offf, 0, 0);\r\n matrixHelper.translate((alignment[0] * letters[i].an) * 0.005, (alignment[1] * yOff) * 0.01, 0);\r\n xPos += letters[i].l + (documentData.tr * 0.001) * documentData.finalSize;\r\n }\r\n if (renderType === 'html') {\r\n letterM = matrixHelper.toCSS();\r\n } else if (renderType === 'svg') {\r\n letterM = matrixHelper.to2dCSS();\r\n } else {\r\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]];\r\n }\r\n letterO = elemOpacity;\r\n }\r\n\r\n if (renderedLettersCount <= i) {\r\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\r\n this.renderedLetters.push(letterValue);\r\n renderedLettersCount += 1;\r\n this.lettersChangedFlag = true;\r\n } else {\r\n letterValue = this.renderedLetters[i];\r\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\r\n }\r\n }\r\n};\r\n\r\nTextAnimatorProperty.prototype.getValue = function () {\r\n if (this._elem.globalData.frameId === this._frameId) {\r\n return;\r\n }\r\n this._frameId = this._elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n};\r\n\r\nTextAnimatorProperty.prototype.mHelper = new Matrix();\r\nTextAnimatorProperty.prototype.defaultPropsArray = [];\r\nextendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\r\n\r\n/* global PropertyFactory, degToRads, TextSelectorProp */\r\n/* exported TextAnimatorDataProperty */\r\n\r\nfunction TextAnimatorDataProperty(elem, animatorProps, container) {\r\n var defaultData = { propType: false };\r\n var getProp = PropertyFactory.getProp;\r\n var textAnimatorAnimatables = animatorProps.a;\r\n this.a = {\r\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\r\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\r\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\r\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\r\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\r\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\r\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\r\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\r\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\r\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\r\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\r\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\r\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\r\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\r\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\r\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData,\r\n };\r\n\r\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\r\n this.s.t = animatorProps.s.t;\r\n}\r\n\r\nfunction LetterProps(o, sw, sc, fc, m, p) {\r\n this.o = o;\r\n this.sw = sw;\r\n this.sc = sc;\r\n this.fc = fc;\r\n this.m = m;\r\n this.p = p;\r\n this._mdf = {\r\n o: true,\r\n sw: !!sw,\r\n sc: !!sc,\r\n fc: !!fc,\r\n m: true,\r\n p: true,\r\n };\r\n}\r\n\r\nLetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\r\n this._mdf.o = false;\r\n this._mdf.sw = false;\r\n this._mdf.sc = false;\r\n this._mdf.fc = false;\r\n this._mdf.m = false;\r\n this._mdf.p = false;\r\n var updated = false;\r\n\r\n if (this.o !== o) {\r\n this.o = o;\r\n this._mdf.o = true;\r\n updated = true;\r\n }\r\n if (this.sw !== sw) {\r\n this.sw = sw;\r\n this._mdf.sw = true;\r\n updated = true;\r\n }\r\n if (this.sc !== sc) {\r\n this.sc = sc;\r\n this._mdf.sc = true;\r\n updated = true;\r\n }\r\n if (this.fc !== fc) {\r\n this.fc = fc;\r\n this._mdf.fc = true;\r\n updated = true;\r\n }\r\n if (this.m !== m) {\r\n this.m = m;\r\n this._mdf.m = true;\r\n updated = true;\r\n }\r\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])) {\r\n this.p = p;\r\n this._mdf.p = true;\r\n updated = true;\r\n }\r\n return updated;\r\n};\r\n\r\n/* global FontManager, initialDefaultFrame, getFontProperties */\r\n/* exported TextProperty */\r\n\r\nfunction TextProperty(elem, data) {\r\n this._frameId = initialDefaultFrame;\r\n this.pv = '';\r\n this.v = '';\r\n this.kf = false;\r\n this._isFirstFrame = true;\r\n this._mdf = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = this.elem.comp;\r\n this.keysIndex = 0;\r\n this.canResize = false;\r\n this.minimumFontSize = 1;\r\n this.effectsSequence = [];\r\n this.currentData = {\r\n ascent: 0,\r\n boxWidth: this.defaultBoxWidth,\r\n f: '',\r\n fStyle: '',\r\n fWeight: '',\r\n fc: '',\r\n j: '',\r\n justifyOffset: '',\r\n l: [],\r\n lh: 0,\r\n lineWidths: [],\r\n ls: '',\r\n of: '',\r\n s: '',\r\n sc: '',\r\n sw: 0,\r\n t: 0,\r\n tr: 0,\r\n sz: 0,\r\n ps: null,\r\n fillColorAnim: false,\r\n strokeColorAnim: false,\r\n strokeWidthAnim: false,\r\n yOffset: 0,\r\n finalSize: 0,\r\n finalText: [],\r\n finalLineHeight: 0,\r\n __complete: false,\r\n\r\n };\r\n this.copyData(this.currentData, this.data.d.k[0].s);\r\n\r\n if (!this.searchProperty()) {\r\n this.completeTextData(this.currentData);\r\n }\r\n}\r\n\r\nTextProperty.prototype.defaultBoxWidth = [0, 0];\r\n\r\nTextProperty.prototype.copyData = function (obj, data) {\r\n for (var s in data) {\r\n if (Object.prototype.hasOwnProperty.call(data, s)) {\r\n obj[s] = data[s];\r\n }\r\n }\r\n return obj;\r\n};\r\n\r\nTextProperty.prototype.setCurrentData = function (data) {\r\n if (!data.__complete) {\r\n this.completeTextData(data);\r\n }\r\n this.currentData = data;\r\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\r\n this._mdf = true;\r\n};\r\n\r\nTextProperty.prototype.searchProperty = function () {\r\n return this.searchKeyframes();\r\n};\r\n\r\nTextProperty.prototype.searchKeyframes = function () {\r\n this.kf = this.data.d.k.length > 1;\r\n if (this.kf) {\r\n this.addEffect(this.getKeyframeValue.bind(this));\r\n }\r\n return this.kf;\r\n};\r\n\r\nTextProperty.prototype.addEffect = function (effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\nTextProperty.prototype.getValue = function (_finalValue) {\r\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\r\n return;\r\n }\r\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\r\n var currentValue = this.currentData;\r\n var currentIndex = this.keysIndex;\r\n if (this.lock) {\r\n this.setCurrentData(this.currentData);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = false;\r\n var i; var\r\n len = this.effectsSequence.length;\r\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\r\n for (i = 0; i < len; i += 1) {\r\n // Checking if index changed to prevent creating a new object every time the expression updates.\r\n if (currentIndex !== this.keysIndex) {\r\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\r\n } else {\r\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\r\n }\r\n }\r\n if (currentValue !== finalValue) {\r\n this.setCurrentData(finalValue);\r\n }\r\n this.v = this.currentData;\r\n this.pv = this.v;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n};\r\n\r\nTextProperty.prototype.getKeyframeValue = function () {\r\n var textKeys = this.data.d.k;\r\n var frameNum = this.elem.comp.renderedFrame;\r\n var i = 0; var\r\n len = textKeys.length;\r\n while (i <= len - 1) {\r\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\r\n break;\r\n }\r\n i += 1;\r\n }\r\n if (this.keysIndex !== i) {\r\n this.keysIndex = i;\r\n }\r\n return this.data.d.k[this.keysIndex].s;\r\n};\r\n\r\nTextProperty.prototype.buildFinalText = function (text) {\r\n var charactersArray = [];\r\n var i = 0;\r\n var len = text.length;\r\n var charCode;\r\n var secondCharCode;\r\n var shouldCombine = false;\r\n while (i < len) {\r\n charCode = text.charCodeAt(i);\r\n if (FontManager.isCombinedCharacter(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\r\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n shouldCombine = false;\r\n } else {\r\n charactersArray.push(text.substr(i, 2));\r\n }\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (charCode > 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\r\n shouldCombine = true;\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n shouldCombine = true;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n i += 1;\r\n }\r\n return charactersArray;\r\n};\r\n\r\nTextProperty.prototype.completeTextData = function (documentData) {\r\n documentData.__complete = true;\r\n var fontManager = this.elem.globalData.fontManager;\r\n var data = this.data;\r\n var letters = [];\r\n var i; var\r\n len;\r\n var newLineFlag; var index = 0; var\r\n val;\r\n var anchorGrouping = data.m.g;\r\n var currentSize = 0; var currentPos = 0; var currentLine = 0; var\r\n lineWidths = [];\r\n var lineWidth = 0;\r\n var maxLineWidth = 0;\r\n var j; var\r\n jLen;\r\n var fontData = fontManager.getFontByName(documentData.f);\r\n var charData; var\r\n cLength = 0;\r\n\r\n var fontProps = getFontProperties(fontData);\r\n documentData.fWeight = fontProps.weight;\r\n documentData.fStyle = fontProps.style;\r\n documentData.finalSize = documentData.s;\r\n documentData.finalText = this.buildFinalText(documentData.t);\r\n len = documentData.finalText.length;\r\n documentData.finalLineHeight = documentData.lh;\r\n var trackingOffset = (documentData.tr / 1000) * documentData.finalSize;\r\n var charCode;\r\n if (documentData.sz) {\r\n var flag = true;\r\n var boxWidth = documentData.sz[0];\r\n var boxHeight = documentData.sz[1];\r\n var currentHeight; var\r\n finalText;\r\n while (flag) {\r\n finalText = this.buildFinalText(documentData.t);\r\n currentHeight = 0;\r\n lineWidth = 0;\r\n len = finalText.length;\r\n trackingOffset = (documentData.tr / 1000) * documentData.finalSize;\r\n var lastSpaceIndex = -1;\r\n for (i = 0; i < len; i += 1) {\r\n charCode = finalText[i].charCodeAt(0);\r\n newLineFlag = false;\r\n if (finalText[i] === ' ') {\r\n lastSpaceIndex = i;\r\n } else if (charCode === 13 || charCode === 3) {\r\n lineWidth = 0;\r\n newLineFlag = true;\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n }\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\r\n cLength = newLineFlag ? 0 : (charData.w * documentData.finalSize) / 100;\r\n } else {\r\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\r\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\r\n }\r\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\r\n if (lastSpaceIndex === -1) {\r\n len += 1;\r\n } else {\r\n i = lastSpaceIndex;\r\n }\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r');\r\n // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\r\n lastSpaceIndex = -1;\r\n lineWidth = 0;\r\n } else {\r\n lineWidth += cLength;\r\n lineWidth += trackingOffset;\r\n }\r\n }\r\n currentHeight += (fontData.ascent * documentData.finalSize) / 100;\r\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\r\n documentData.finalSize -= 1;\r\n documentData.finalLineHeight = (documentData.finalSize * documentData.lh) / documentData.s;\r\n } else {\r\n documentData.finalText = finalText;\r\n len = documentData.finalText.length;\r\n flag = false;\r\n }\r\n }\r\n }\r\n lineWidth = -trackingOffset;\r\n cLength = 0;\r\n var uncollapsedSpaces = 0;\r\n var currentChar;\r\n for (i = 0; i < len; i += 1) {\r\n newLineFlag = false;\r\n currentChar = documentData.finalText[i];\r\n charCode = currentChar.charCodeAt(0);\r\n if (charCode === 13 || charCode === 3) {\r\n uncollapsedSpaces = 0;\r\n lineWidths.push(lineWidth);\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidth = -2 * trackingOffset;\r\n val = '';\r\n newLineFlag = true;\r\n currentLine += 1;\r\n } else {\r\n val = currentChar;\r\n }\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\r\n cLength = newLineFlag ? 0 : (charData.w * documentData.finalSize) / 100;\r\n } else {\r\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\r\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n }\r\n\r\n //\r\n if (currentChar === ' ') {\r\n uncollapsedSpaces += cLength + trackingOffset;\r\n } else {\r\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\r\n uncollapsedSpaces = 0;\r\n }\r\n letters.push({\r\n l: cLength, an: cLength, add: currentSize, n: newLineFlag, anIndexes: [], val: val, line: currentLine, animatorJustifyOffset: 0,\r\n });\r\n if (anchorGrouping == 2) { // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n if (val === '' || val === ' ' || i === len - 1) {\r\n if (val === '' || val === ' ') {\r\n currentSize -= cLength;\r\n }\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n index += 1;\r\n currentSize = 0;\r\n }\r\n } else if (anchorGrouping == 3) { // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n if (val === '' || i === len - 1) {\r\n if (val === '') {\r\n currentSize -= cLength;\r\n }\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n currentSize = 0;\r\n index += 1;\r\n }\r\n } else {\r\n letters[index].ind = index;\r\n letters[index].extra = 0;\r\n index += 1;\r\n }\r\n }\r\n documentData.l = letters;\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidths.push(lineWidth);\r\n if (documentData.sz) {\r\n documentData.boxWidth = documentData.sz[0];\r\n documentData.justifyOffset = 0;\r\n } else {\r\n documentData.boxWidth = maxLineWidth;\r\n switch (documentData.j) {\r\n case 1:\r\n documentData.justifyOffset = -documentData.boxWidth;\r\n break;\r\n case 2:\r\n documentData.justifyOffset = -documentData.boxWidth / 2;\r\n break;\r\n default:\r\n documentData.justifyOffset = 0;\r\n }\r\n }\r\n documentData.lineWidths = lineWidths;\r\n\r\n var animators = data.a; var animatorData; var\r\n letterData;\r\n jLen = animators.length;\r\n var based; var ind; var\r\n indexes = [];\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorData = animators[j];\r\n if (animatorData.a.sc) {\r\n documentData.strokeColorAnim = true;\r\n }\r\n if (animatorData.a.sw) {\r\n documentData.strokeWidthAnim = true;\r\n }\r\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\r\n documentData.fillColorAnim = true;\r\n }\r\n ind = 0;\r\n based = animatorData.s.b;\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n letterData.anIndexes[j] = ind;\r\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))) { // eslint-disable-line eqeqeq\r\n if (animatorData.s.rn === 1) {\r\n indexes.push(ind);\r\n }\r\n ind += 1;\r\n }\r\n }\r\n data.a[j].s.totalChars = ind;\r\n var currentInd = -1; var\r\n newInd;\r\n if (animatorData.s.rn === 1) {\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n if (currentInd != letterData.anIndexes[j]) { // eslint-disable-line eqeqeq\r\n currentInd = letterData.anIndexes[j];\r\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\r\n }\r\n letterData.anIndexes[j] = newInd;\r\n }\r\n }\r\n }\r\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n documentData.ls = documentData.ls || 0;\r\n documentData.ascent = (fontData.ascent * documentData.finalSize) / 100;\r\n};\r\n\r\nTextProperty.prototype.updateDocumentData = function (newData, index) {\r\n index = index === undefined ? this.keysIndex : index;\r\n var dData = this.copyData({}, this.data.d.k[index].s);\r\n dData = this.copyData(dData, newData);\r\n this.data.d.k[index].s = dData;\r\n this.recalculate(index);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\nTextProperty.prototype.recalculate = function (index) {\r\n var dData = this.data.d.k[index].s;\r\n dData.__complete = false;\r\n this.keysIndex = 0;\r\n this._isFirstFrame = true;\r\n this.getValue(dData);\r\n};\r\n\r\nTextProperty.prototype.canResizeFont = function (_canResize) {\r\n this.canResize = _canResize;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\nTextProperty.prototype.setMinimumFontSize = function (_fontValue) {\r\n this.minimumFontSize = Math.floor(_fontValue) || 1;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\n/* global extendPrototype, BezierFactory, PropertyFactory, DynamicPropertyContainer */\r\n/* exported TextSelectorProp */\r\n\r\nvar TextSelectorProp = (function () {\r\n var max = Math.max;\r\n var min = Math.min;\r\n var floor = Math.floor;\r\n\r\n function TextSelectorPropFactory(elem, data) {\r\n this._currentTextLength = -1;\r\n this.k = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.finalS = 0;\r\n this.finalE = 0;\r\n this.initDynamicPropertyContainer(elem);\r\n this.s = PropertyFactory.getProp(elem, data.s || { k: 0 }, 0, 0, this);\r\n if ('e' in data) {\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\r\n } else {\r\n this.e = { v: 100 };\r\n }\r\n this.o = PropertyFactory.getProp(elem, data.o || { k: 0 }, 0, 0, this);\r\n this.xe = PropertyFactory.getProp(elem, data.xe || { k: 0 }, 0, 0, this);\r\n this.ne = PropertyFactory.getProp(elem, data.ne || { k: 0 }, 0, 0, this);\r\n this.sm = PropertyFactory.getProp(elem, data.sm || { k: 100 }, 0, 0, this);\r\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\r\n if (!this.dynamicProperties.length) {\r\n this.getValue();\r\n }\r\n }\r\n\r\n TextSelectorPropFactory.prototype = {\r\n getMult: function (ind) {\r\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\r\n this.getValue();\r\n }\r\n // var easer = bez.getEasingCurve(this.ne.v/100,0,1-this.xe.v/100,1);\r\n var x1 = 0;\r\n var y1 = 0;\r\n var x2 = 1;\r\n var y2 = 1;\r\n if (this.ne.v > 0) {\r\n x1 = this.ne.v / 100.0;\r\n } else {\r\n y1 = -this.ne.v / 100.0;\r\n }\r\n if (this.xe.v > 0) {\r\n x2 = 1.0 - this.xe.v / 100.0;\r\n } else {\r\n y2 = 1.0 + this.xe.v / 100.0;\r\n }\r\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\r\n\r\n var mult = 0;\r\n var s = this.finalS;\r\n var e = this.finalE;\r\n var type = this.data.sh;\r\n if (type === 2) {\r\n if (e === s) {\r\n mult = ind >= e ? 1 : 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n mult = easer(mult);\r\n } else if (type === 3) {\r\n if (e === s) {\r\n mult = ind >= e ? 0 : 1;\r\n } else {\r\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 4) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n if (mult < 0.5) {\r\n mult *= 2;\r\n } else {\r\n mult = 1 - 2 * (mult - 0.5);\r\n }\r\n }\r\n mult = easer(mult);\r\n } else if (type === 5) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n var tot = e - s;\r\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n var x = -tot / 2 + ind;\r\n var a = tot / 2;\r\n mult = Math.sqrt(1 - (x * x) / (a * a));\r\n }\r\n mult = easer(mult);\r\n } else if (type === 6) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n mult = (1 + (Math.cos((Math.PI + Math.PI * 2 * (ind) / (e - s))))) / 2; // eslint-disable-line\r\n }\r\n mult = easer(mult);\r\n } else {\r\n if (ind >= floor(s)) {\r\n if (ind - s < 0) {\r\n mult = max(0, min(min(e, 1) - (s - ind), 1));\r\n } else {\r\n mult = max(0, min(e - ind, 1));\r\n }\r\n }\r\n mult = easer(mult);\r\n }\r\n // Smoothness implementation.\r\n // The smoothness represents a reduced range of the original [0; 1] range.\r\n // if smoothness is 25%, the new range will be [0.375; 0.625]\r\n // Steps are:\r\n // - find the lower value of the new range (threshold)\r\n // - if multiplier is smaller than that value, floor it to 0\r\n // - if it is larger,\r\n // - subtract the threshold\r\n // - divide it by the smoothness (this will return the range to [0; 1])\r\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\r\n if (this.sm.v !== 100) {\r\n var smoothness = this.sm.v * 0.01;\r\n if (smoothness === 0) {\r\n smoothness = 0.00000001;\r\n }\r\n var threshold = 0.5 - smoothness * 0.5;\r\n if (mult < threshold) {\r\n mult = 0;\r\n } else {\r\n mult = (mult - threshold) / smoothness;\r\n if (mult > 1) {\r\n mult = 1;\r\n }\r\n }\r\n }\r\n return mult * this.a.v;\r\n },\r\n getValue: function (newCharsFlag) {\r\n this.iterateDynamicProperties();\r\n this._mdf = newCharsFlag || this._mdf;\r\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\r\n if (newCharsFlag && this.data.r === 2) {\r\n this.e.v = this._currentTextLength;\r\n }\r\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\r\n var o = this.o.v / divisor;\r\n var s = this.s.v / divisor + o;\r\n var e = (this.e.v / divisor) + o;\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n this.finalS = s;\r\n this.finalE = e;\r\n },\r\n };\r\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\r\n\r\n function getTextSelectorProp(elem, data, arr) {\r\n return new TextSelectorPropFactory(elem, data, arr);\r\n }\r\n\r\n return {\r\n getTextSelectorProp: getTextSelectorProp,\r\n };\r\n}());\r\n\r\n/* global createSizedArray, pooling */\r\n/* exported poolFactory */\r\n\r\nvar poolFactory = (function () {\r\n return function (initialLength, _create, _release) {\r\n var _length = 0;\r\n var _maxLength = initialLength;\r\n var pool = createSizedArray(_maxLength);\r\n\r\n var ob = {\r\n newElement: newElement,\r\n release: release,\r\n };\r\n\r\n function newElement() {\r\n var element;\r\n if (_length) {\r\n _length -= 1;\r\n element = pool[_length];\r\n } else {\r\n element = _create();\r\n }\r\n return element;\r\n }\r\n\r\n function release(element) {\r\n if (_length === _maxLength) {\r\n pool = pooling.double(pool);\r\n _maxLength *= 2;\r\n }\r\n if (_release) {\r\n _release(element);\r\n }\r\n pool[_length] = element;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n };\r\n}());\r\n\r\n/* global createSizedArray */\r\n/* exported pooling */\r\n\r\nvar pooling = (function () {\r\n function double(arr) {\r\n return arr.concat(createSizedArray(arr.length));\r\n }\r\n\r\n return {\r\n double: double,\r\n };\r\n}());\r\n\r\n/* global createTypedArray, poolFactory */\r\n/* exported pointPool */\r\n\r\nvar pointPool = (function () {\r\n function create() {\r\n return createTypedArray('float32', 2);\r\n }\r\n return poolFactory(8, create);\r\n}());\r\n\r\n/* global ShapePath, pointPool, poolFactory */\r\n/* exported shapePool */\r\n\r\nvar shapePool = (function () {\r\n function create() {\r\n return new ShapePath();\r\n }\r\n\r\n function release(shapePath) {\r\n var len = shapePath._length;\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n pointPool.release(shapePath.v[i]);\r\n pointPool.release(shapePath.i[i]);\r\n pointPool.release(shapePath.o[i]);\r\n shapePath.v[i] = null;\r\n shapePath.i[i] = null;\r\n shapePath.o[i] = null;\r\n }\r\n shapePath._length = 0;\r\n shapePath.c = false;\r\n }\r\n\r\n function clone(shape) {\r\n var cloned = factory.newElement();\r\n var i;\r\n var len = shape._length === undefined ? shape.v.length : shape._length;\r\n cloned.setLength(len);\r\n cloned.c = shape.c;\r\n\r\n for (i = 0; i < len; i += 1) {\r\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);\r\n }\r\n return cloned;\r\n }\r\n\r\n var factory = poolFactory(4, create, release);\r\n factory.clone = clone;\r\n\r\n return factory;\r\n}());\r\n\r\n/* global createSizedArray, ShapeCollection, shapePool, pooling */\r\n/* exported shapeCollectionPool */\r\n\r\nvar shapeCollectionPool = (function () {\r\n var ob = {\r\n newShapeCollection: newShapeCollection,\r\n release: release,\r\n };\r\n\r\n var _length = 0;\r\n var _maxLength = 4;\r\n var pool = createSizedArray(_maxLength);\r\n\r\n function newShapeCollection() {\r\n var shapeCollection;\r\n if (_length) {\r\n _length -= 1;\r\n shapeCollection = pool[_length];\r\n } else {\r\n shapeCollection = new ShapeCollection();\r\n }\r\n return shapeCollection;\r\n }\r\n\r\n function release(shapeCollection) {\r\n var i;\r\n var len = shapeCollection._length;\r\n for (i = 0; i < len; i += 1) {\r\n shapePool.release(shapeCollection.shapes[i]);\r\n }\r\n shapeCollection._length = 0;\r\n\r\n if (_length === _maxLength) {\r\n pool = pooling.double(pool);\r\n _maxLength *= 2;\r\n }\r\n pool[_length] = shapeCollection;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\n/* global poolFactory, bezierLengthPool */\r\n/* exported segmentsLengthPool */\r\n\r\nvar segmentsLengthPool = (function () {\r\n function create() {\r\n return {\r\n lengths: [],\r\n totalLength: 0,\r\n };\r\n }\r\n\r\n function release(element) {\r\n var i;\r\n var len = element.lengths.length;\r\n for (i = 0; i < len; i += 1) {\r\n bezierLengthPool.release(element.lengths[i]);\r\n }\r\n element.lengths.length = 0;\r\n }\r\n\r\n return poolFactory(8, create, release);\r\n}());\r\n\r\n/* global createTypedArray, defaultCurveSegments, poolFactory */\r\n/* exported bezierLengthPool */\r\n\r\nvar bezierLengthPool = (function () {\r\n function create() {\r\n return {\r\n addedLength: 0,\r\n percents: createTypedArray('float32', defaultCurveSegments),\r\n lengths: createTypedArray('float32', defaultCurveSegments),\r\n };\r\n }\r\n return poolFactory(8, create);\r\n}());\r\n\r\n/* exported markerParser */\r\n\r\nvar markerParser = (\r\n\r\n function () {\r\n function parsePayloadLines(payload) {\r\n var lines = payload.split('\\r\\n');\r\n var keys = {};\r\n var line;\r\n var keysCount = 0;\r\n for (var i = 0; i < lines.length; i += 1) {\r\n line = lines[i].split(':');\r\n if (line.length === 2) {\r\n keys[line[0]] = line[1].trim();\r\n keysCount += 1;\r\n }\r\n }\r\n if (keysCount === 0) {\r\n throw new Error();\r\n }\r\n return keys;\r\n }\r\n\r\n return function (_markers) {\r\n var markers = [];\r\n for (var i = 0; i < _markers.length; i += 1) {\r\n var _marker = _markers[i];\r\n var markerData = {\r\n time: _marker.tm,\r\n duration: _marker.dr,\r\n };\r\n try {\r\n markerData.payload = JSON.parse(_markers[i].cm);\r\n } catch (_) {\r\n try {\r\n markerData.payload = parsePayloadLines(_markers[i].cm);\r\n } catch (__) {\r\n markerData.payload = {\r\n name: _markers[i],\r\n };\r\n }\r\n }\r\n markers.push(markerData);\r\n }\r\n return markers;\r\n };\r\n }());\r\n\r\n/* global AudioElement, FootageElement, FontManager */\r\n\r\nfunction BaseRenderer() {}\r\nBaseRenderer.prototype.checkLayers = function (num) {\r\n var i;\r\n var len = this.layers.length;\r\n var data;\r\n this.completeLayers = true;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (!this.elements[i]) {\r\n data = this.layers[i];\r\n if (data.ip - data.st <= (num - this.layers[i].st) && data.op - data.st > (num - this.layers[i].st)) {\r\n this.buildItem(i);\r\n }\r\n }\r\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\r\n }\r\n this.checkPendingElements();\r\n};\r\n\r\nBaseRenderer.prototype.createItem = function (layer) {\r\n switch (layer.ty) {\r\n case 2:\r\n return this.createImage(layer);\r\n case 0:\r\n return this.createComp(layer);\r\n case 1:\r\n return this.createSolid(layer);\r\n case 3:\r\n return this.createNull(layer);\r\n case 4:\r\n return this.createShape(layer);\r\n case 5:\r\n return this.createText(layer);\r\n case 6:\r\n return this.createAudio(layer);\r\n case 13:\r\n return this.createCamera(layer);\r\n case 15:\r\n return this.createFootage(layer);\r\n default:\r\n return this.createNull(layer);\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.createCamera = function () {\r\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\r\n};\r\n\r\nBaseRenderer.prototype.createAudio = function (data) {\r\n return new AudioElement(data, this.globalData, this);\r\n};\r\n\r\nBaseRenderer.prototype.createFootage = function (data) {\r\n return new FootageElement(data, this.globalData, this);\r\n};\r\n\r\nBaseRenderer.prototype.buildAllItems = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.buildItem(i);\r\n }\r\n this.checkPendingElements();\r\n};\r\n\r\nBaseRenderer.prototype.includeLayers = function (newLayers) {\r\n this.completeLayers = false;\r\n var i;\r\n var len = newLayers.length;\r\n var j;\r\n var jLen = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n while (j < jLen) {\r\n if (this.layers[j].id === newLayers[i].id) {\r\n this.layers[j] = newLayers[i];\r\n break;\r\n }\r\n j += 1;\r\n }\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.setProjectInterface = function (pInterface) {\r\n this.globalData.projectInterface = pInterface;\r\n};\r\n\r\nBaseRenderer.prototype.initItems = function () {\r\n if (!this.globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n};\r\nBaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\r\n var elements = this.elements;\r\n var layers = this.layers;\r\n var i = 0;\r\n var len = layers.length;\r\n while (i < len) {\r\n if (layers[i].ind == parentName) { // eslint-disable-line eqeqeq\r\n if (!elements[i] || elements[i] === true) {\r\n this.buildItem(i);\r\n this.addPendingElement(element);\r\n } else {\r\n hierarchy.push(elements[i]);\r\n elements[i].setAsParent();\r\n if (layers[i].parent !== undefined) {\r\n this.buildElementParenting(element, layers[i].parent, hierarchy);\r\n } else {\r\n element.setHierarchy(hierarchy);\r\n }\r\n }\r\n }\r\n i += 1;\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.addPendingElement = function (element) {\r\n this.pendingElements.push(element);\r\n};\r\n\r\nBaseRenderer.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i]);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\r\n this.globalData.fontManager = new FontManager();\r\n this.globalData.fontManager.addChars(animData.chars);\r\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\r\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\r\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\r\n this.globalData.imageLoader = this.animationItem.imagePreloader;\r\n this.globalData.audioController = this.animationItem.audioController;\r\n this.globalData.frameId = 0;\r\n this.globalData.frameRate = animData.fr;\r\n this.globalData.nm = animData.nm;\r\n this.globalData.compSize = {\r\n w: animData.w,\r\n h: animData.h,\r\n };\r\n};\r\n\r\n/* global createElementID, extendPrototype, BaseRenderer, NullElement, SVGShapeElement, SVGTextLottieElement,\r\nIImageElement, SVGCompElement, ISolidElement, createNS, locationHref, createSizedArray, expressionsPlugin */\r\n\r\nfunction SVGRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.svgElement = createNS('svg');\r\n var ariaLabel = '';\r\n if (config && config.title) {\r\n var titleElement = createNS('title');\r\n var titleId = createElementID();\r\n titleElement.setAttribute('id', titleId);\r\n titleElement.textContent = config.title;\r\n this.svgElement.appendChild(titleElement);\r\n ariaLabel += titleId;\r\n }\r\n if (config && config.description) {\r\n var descElement = createNS('desc');\r\n var descId = createElementID();\r\n descElement.setAttribute('id', descId);\r\n descElement.textContent = config.description;\r\n this.svgElement.appendChild(descElement);\r\n ariaLabel += ' ' + descId;\r\n }\r\n if (ariaLabel) {\r\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\r\n }\r\n var defs = createNS('defs');\r\n this.svgElement.appendChild(defs);\r\n var maskElement = createNS('g');\r\n this.svgElement.appendChild(maskElement);\r\n this.layerElement = maskElement;\r\n this.renderConfig = {\r\n preserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',\r\n imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\r\n contentVisibility: (config && config.contentVisibility) || 'visible',\r\n progressiveLoad: (config && config.progressiveLoad) || false,\r\n hideOnTransparent: !((config && config.hideOnTransparent === false)),\r\n viewBoxOnly: (config && config.viewBoxOnly) || false,\r\n viewBoxSize: (config && config.viewBoxSize) || false,\r\n className: (config && config.className) || '',\r\n id: (config && config.id) || '',\r\n focusable: config && config.focusable,\r\n filterSize: {\r\n width: (config && config.filterSize && config.filterSize.width) || '100%',\r\n height: (config && config.filterSize && config.filterSize.height) || '100%',\r\n x: (config && config.filterSize && config.filterSize.x) || '0%',\r\n y: (config && config.filterSize && config.filterSize.y) || '0%',\r\n },\r\n };\r\n\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n defs: defs,\r\n renderConfig: this.renderConfig,\r\n };\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.destroyed = false;\r\n this.rendererType = 'svg';\r\n}\r\n\r\nextendPrototype([BaseRenderer], SVGRenderer);\r\n\r\nSVGRenderer.prototype.createNull = function (data) {\r\n return new NullElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createShape = function (data) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createText = function (data) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createImage = function (data) {\r\n return new IImageElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createComp = function (data) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createSolid = function (data) {\r\n return new ISolidElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.configAnimation = function (animData) {\r\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n if (this.renderConfig.viewBoxSize) {\r\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\r\n } else {\r\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\r\n }\r\n\r\n if (!this.renderConfig.viewBoxOnly) {\r\n this.svgElement.setAttribute('width', animData.w);\r\n this.svgElement.setAttribute('height', animData.h);\r\n this.svgElement.style.width = '100%';\r\n this.svgElement.style.height = '100%';\r\n this.svgElement.style.transform = 'translate3d(0,0,0)';\r\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\r\n }\r\n if (this.renderConfig.className) {\r\n this.svgElement.setAttribute('class', this.renderConfig.className);\r\n }\r\n if (this.renderConfig.id) {\r\n this.svgElement.setAttribute('id', this.renderConfig.id);\r\n }\r\n if (this.renderConfig.focusable !== undefined) {\r\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\r\n }\r\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio);\r\n // this.layerElement.style.transform = 'translate3d(0,0,0)';\r\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\r\n this.animationItem.wrapper.appendChild(this.svgElement);\r\n // Mask animation\r\n var defs = this.globalData.defs;\r\n\r\n this.setupGlobalData(animData, defs);\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.data = animData;\r\n\r\n var maskElement = createNS('clipPath');\r\n var rect = createNS('rect');\r\n rect.setAttribute('width', animData.w);\r\n rect.setAttribute('height', animData.h);\r\n rect.setAttribute('x', 0);\r\n rect.setAttribute('y', 0);\r\n var maskId = createElementID();\r\n maskElement.setAttribute('id', maskId);\r\n maskElement.appendChild(rect);\r\n this.layerElement.setAttribute('clip-path', 'url(' + locationHref + '#' + maskId + ')');\r\n\r\n defs.appendChild(maskElement);\r\n this.layers = animData.layers;\r\n this.elements = createSizedArray(animData.layers.length);\r\n};\r\n\r\nSVGRenderer.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n this.layerElement = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n};\r\n\r\nSVGRenderer.prototype.updateContainerSize = function () {\r\n};\r\n\r\nSVGRenderer.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n elements[pos] = true;\r\n var element = this.createItem(this.layers[pos]);\r\n\r\n elements[pos] = element;\r\n if (expressionsPlugin) {\r\n if (this.layers[pos].ty === 0) {\r\n this.globalData.projectInterface.registerComposition(element);\r\n }\r\n element.initExpressions();\r\n }\r\n this.appendElementInPos(element, pos);\r\n if (this.layers[pos].tt) {\r\n if (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\r\n this.buildItem(pos - 1);\r\n this.addPendingElement(element);\r\n } else {\r\n element.setMatte(elements[pos - 1].layerId);\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n if (element.data.tt) {\r\n var i = 0;\r\n var len = this.elements.length;\r\n while (i < len) {\r\n if (this.elements[i] === element) {\r\n element.setMatte(this.elements[i - 1].layerId);\r\n break;\r\n }\r\n i += 1;\r\n }\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.renderFrame = function (num) {\r\n if (this.renderedFrame === num || this.destroyed) {\r\n return;\r\n }\r\n if (num === null) {\r\n num = this.renderedFrame;\r\n } else {\r\n this.renderedFrame = num;\r\n }\r\n // console.log('-------');\r\n // console.log('FRAME ',num);\r\n this.globalData.frameNum = num;\r\n this.globalData.frameId += 1;\r\n this.globalData.projectInterface.currentFrame = num;\r\n this.globalData._mdf = false;\r\n var i;\r\n var len = this.layers.length;\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n if (this.globalData._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.appendElementInPos = function (element, pos) {\r\n var newElement = element.getBaseElement();\r\n if (!newElement) {\r\n return;\r\n }\r\n var i = 0;\r\n var nextElement;\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\r\n nextElement = this.elements[i].getBaseElement();\r\n }\r\n i += 1;\r\n }\r\n if (nextElement) {\r\n this.layerElement.insertBefore(newElement, nextElement);\r\n } else {\r\n this.layerElement.appendChild(newElement);\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.hide = function () {\r\n this.layerElement.style.display = 'none';\r\n};\r\n\r\nSVGRenderer.prototype.show = function () {\r\n this.layerElement.style.display = 'block';\r\n};\r\n\r\n/* global CVContextData, Matrix, extendPrototype, BaseRenderer, CVShapeElement, CVTextElement,\r\nCVImageElement, CVCompElement, CVSolidElement, SVGRenderer, createTag, createSizedArray */\r\n\r\nfunction CanvasRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: (config && config.clearCanvas !== undefined) ? config.clearCanvas : true,\r\n context: (config && config.context) || null,\r\n progressiveLoad: (config && config.progressiveLoad) || false,\r\n preserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',\r\n imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\r\n contentVisibility: (config && config.contentVisibility) || 'visible',\r\n className: (config && config.className) || '',\r\n id: (config && config.id) || '',\r\n };\r\n this.renderConfig.dpr = (config && config.dpr) || 1;\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = (config && config.dpr) || window.devicePixelRatio || 1;\r\n }\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1,\r\n _mdf: false,\r\n renderConfig: this.renderConfig,\r\n currentGlobalAlpha: -1,\r\n };\r\n this.contextData = new CVContextData();\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.transformMat = new Matrix();\r\n this.completeLayers = false;\r\n this.rendererType = 'canvas';\r\n}\r\nextendPrototype([BaseRenderer], CanvasRenderer);\r\n\r\nCanvasRenderer.prototype.createShape = function (data) {\r\n return new CVShapeElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createText = function (data) {\r\n return new CVTextElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createImage = function (data) {\r\n return new CVImageElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createComp = function (data) {\r\n return new CVCompElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createSolid = function (data) {\r\n return new CVSolidElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\nCanvasRenderer.prototype.ctxTransform = function (props) {\r\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\r\n return;\r\n }\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\r\n return;\r\n }\r\n this.transformMat.cloneFromProps(props);\r\n var cProps = this.contextData.cTr.props;\r\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]);\r\n // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\r\n this.contextData.cTr.cloneFromProps(this.transformMat.props);\r\n var trProps = this.contextData.cTr.props;\r\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\r\n};\r\n\r\nCanvasRenderer.prototype.ctxOpacity = function (op) {\r\n /* if(op === 1){\r\n return;\r\n } */\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\r\n this.globalData.currentGlobalAlpha = this.contextData.cO;\r\n return;\r\n }\r\n this.contextData.cO *= op < 0 ? 0 : op;\r\n if (this.globalData.currentGlobalAlpha !== this.contextData.cO) {\r\n this.canvasContext.globalAlpha = this.contextData.cO;\r\n this.globalData.currentGlobalAlpha = this.contextData.cO;\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.reset = function () {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n this.contextData.reset();\r\n};\r\n\r\nCanvasRenderer.prototype.save = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.save();\r\n return;\r\n }\r\n if (actionFlag) {\r\n this.canvasContext.save();\r\n }\r\n var props = this.contextData.cTr.props;\r\n if (this.contextData._length <= this.contextData.cArrPos) {\r\n this.contextData.duplicate();\r\n }\r\n var i;\r\n var arr = this.contextData.saved[this.contextData.cArrPos];\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = props[i];\r\n }\r\n this.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\r\n this.contextData.cArrPos += 1;\r\n};\r\n\r\nCanvasRenderer.prototype.restore = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n if (actionFlag) {\r\n this.canvasContext.restore();\r\n this.globalData.blendMode = 'source-over';\r\n }\r\n this.contextData.cArrPos -= 1;\r\n var popped = this.contextData.saved[this.contextData.cArrPos];\r\n var i;\r\n var arr = this.contextData.cTr.props;\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = popped[i];\r\n }\r\n this.canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\r\n popped = this.contextData.savedOp[this.contextData.cArrPos];\r\n this.contextData.cO = popped;\r\n if (this.globalData.currentGlobalAlpha !== popped) {\r\n this.canvasContext.globalAlpha = popped;\r\n this.globalData.currentGlobalAlpha = popped;\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.configAnimation = function (animData) {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.container = createTag('canvas');\r\n var containerStyle = this.animationItem.container.style;\r\n containerStyle.width = '100%';\r\n containerStyle.height = '100%';\r\n var origin = '0px 0px 0px';\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n containerStyle['-webkit-transform'] = origin;\r\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\r\n this.animationItem.wrapper.appendChild(this.animationItem.container);\r\n this.canvasContext = this.animationItem.container.getContext('2d');\r\n if (this.renderConfig.className) {\r\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\r\n }\r\n if (this.renderConfig.id) {\r\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\r\n }\r\n } else {\r\n this.canvasContext = this.renderConfig.context;\r\n }\r\n this.data = animData;\r\n this.layers = animData.layers;\r\n this.transformCanvas = {\r\n w: animData.w,\r\n h: animData.h,\r\n sx: 0,\r\n sy: 0,\r\n tx: 0,\r\n ty: 0,\r\n };\r\n this.setupGlobalData(animData, document.body);\r\n this.globalData.canvasContext = this.canvasContext;\r\n this.globalData.renderer = this;\r\n this.globalData.isDashed = false;\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.globalData.transformCanvas = this.transformCanvas;\r\n this.elements = createSizedArray(animData.layers.length);\r\n\r\n this.updateContainerSize();\r\n};\r\n\r\nCanvasRenderer.prototype.updateContainerSize = function () {\r\n this.reset();\r\n var elementWidth;\r\n var elementHeight;\r\n if (this.animationItem.wrapper && this.animationItem.container) {\r\n elementWidth = this.animationItem.wrapper.offsetWidth;\r\n elementHeight = this.animationItem.wrapper.offsetHeight;\r\n this.animationItem.container.setAttribute('width', elementWidth * this.renderConfig.dpr);\r\n this.animationItem.container.setAttribute('height', elementHeight * this.renderConfig.dpr);\r\n } else {\r\n elementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;\r\n elementHeight = this.canvasContext.canvas.height * this.renderConfig.dpr;\r\n }\r\n var elementRel;\r\n var animationRel;\r\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\r\n var par = this.renderConfig.preserveAspectRatio.split(' ');\r\n var fillType = par[1] || 'meet';\r\n var pos = par[0] || 'xMidYMid';\r\n var xPos = pos.substr(0, 4);\r\n var yPos = pos.substr(4);\r\n elementRel = elementWidth / elementHeight;\r\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\r\n if ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice')) {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n } else {\r\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n }\r\n\r\n if (xPos === 'xMid' && ((animationRel < elementRel && fillType === 'meet') || (animationRel > elementRel && fillType === 'slice'))) {\r\n this.transformCanvas.tx = ((elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2) * this.renderConfig.dpr;\r\n } else if (xPos === 'xMax' && ((animationRel < elementRel && fillType === 'meet') || (animationRel > elementRel && fillType === 'slice'))) {\r\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.tx = 0;\r\n }\r\n if (yPos === 'YMid' && ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice'))) {\r\n this.transformCanvas.ty = ((elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2) * this.renderConfig.dpr;\r\n } else if (yPos === 'YMax' && ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice'))) {\r\n this.transformCanvas.ty = ((elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w))) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.ty = 0;\r\n }\r\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n } else {\r\n this.transformCanvas.sx = this.renderConfig.dpr;\r\n this.transformCanvas.sy = this.renderConfig.dpr;\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n }\r\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];\r\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n this.elements.length = 0;\r\n this.globalData.canvasContext = null;\r\n this.animationItem.container = null;\r\n this.destroyed = true;\r\n};\r\n\r\nCanvasRenderer.prototype.renderFrame = function (num, forceRender) {\r\n if ((this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender) || this.destroyed || num === -1) {\r\n return;\r\n }\r\n this.renderedFrame = num;\r\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\r\n this.globalData.frameId += 1;\r\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\r\n this.globalData.projectInterface.currentFrame = num;\r\n\r\n // console.log('--------');\r\n // console.log('NEW: ',num);\r\n var i;\r\n var len = this.layers.length;\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n if (this.globalData._mdf) {\r\n if (this.renderConfig.clearCanvas === true) {\r\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\r\n } else {\r\n this.save();\r\n }\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n if (this.renderConfig.clearCanvas !== true) {\r\n this.restore();\r\n }\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n var element = this.createItem(this.layers[pos], this, this.globalData);\r\n elements[pos] = element;\r\n element.initExpressions();\r\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\r\n};\r\n\r\nCanvasRenderer.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.hide = function () {\r\n this.animationItem.container.style.display = 'none';\r\n};\r\n\r\nCanvasRenderer.prototype.show = function () {\r\n this.animationItem.container.style.display = 'block';\r\n};\r\n\r\n/* global extendPrototype, BaseRenderer, SVGRenderer, SVGShapeElement, HShapeElement, SVGTextLottieElement,\r\nHTextElement, HCameraElement, IImageElement, HImageElement, SVGCompElement, HCompElement, ISolidElement,\r\nHSolidElement, styleDiv, createTag, createNS */\r\n\r\nfunction HybridRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.renderConfig = {\r\n className: (config && config.className) || '',\r\n imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n filterSize: {\r\n width: (config && config.filterSize && config.filterSize.width) || '400%',\r\n height: (config && config.filterSize && config.filterSize.height) || '400%',\r\n x: (config && config.filterSize && config.filterSize.x) || '-100%',\r\n y: (config && config.filterSize && config.filterSize.y) || '-100%',\r\n },\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig,\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n}\r\n\r\nextendPrototype([BaseRenderer], HybridRenderer);\r\n\r\nHybridRenderer.prototype.buildItem = SVGRenderer.prototype.buildItem;\r\n\r\nHybridRenderer.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.appendElementInPos = function (element, pos) {\r\n var newDOMElement = element.getBaseElement();\r\n if (!newDOMElement) {\r\n return;\r\n }\r\n var layer = this.layers[pos];\r\n if (!layer.ddd || !this.supports3d) {\r\n if (this.threeDElements) {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n } else {\r\n var i = 0;\r\n var nextDOMElement;\r\n var nextLayer;\r\n var tmpDOMElement;\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\r\n nextLayer = this.elements[i];\r\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\r\n nextDOMElement = tmpDOMElement || nextDOMElement;\r\n }\r\n i += 1;\r\n }\r\n if (nextDOMElement) {\r\n if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\r\n }\r\n } else if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.appendChild(newDOMElement);\r\n }\r\n }\r\n } else {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.createShape = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n }\r\n return new HShapeElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createText = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n }\r\n return new HTextElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createCamera = function (data) {\r\n this.camera = new HCameraElement(data, this.globalData, this);\r\n return this.camera;\r\n};\r\n\r\nHybridRenderer.prototype.createImage = function (data) {\r\n if (!this.supports3d) {\r\n return new IImageElement(data, this.globalData, this);\r\n }\r\n return new HImageElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createComp = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n }\r\n return new HCompElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createSolid = function (data) {\r\n if (!this.supports3d) {\r\n return new ISolidElement(data, this.globalData, this);\r\n }\r\n return new HSolidElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\nHybridRenderer.prototype.getThreeDContainerByPos = function (pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n while (i < len) {\r\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\r\n return this.threeDElements[i].perspectiveElem;\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nHybridRenderer.prototype.createThreeDContainer = function (pos, type) {\r\n var perspectiveElem = createTag('div');\r\n var style;\r\n var containerStyle;\r\n styleDiv(perspectiveElem);\r\n var container = createTag('div');\r\n styleDiv(container);\r\n if (type === '3d') {\r\n style = perspectiveElem.style;\r\n style.width = this.globalData.compSize.w + 'px';\r\n style.height = this.globalData.compSize.h + 'px';\r\n var center = '50% 50%';\r\n style.webkitTransformOrigin = center;\r\n style.mozTransformOrigin = center;\r\n style.transformOrigin = center;\r\n containerStyle = container.style;\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n containerStyle.transform = matrix;\r\n containerStyle.webkitTransform = matrix;\r\n }\r\n\r\n perspectiveElem.appendChild(container);\r\n // this.resizerElem.appendChild(perspectiveElem);\r\n var threeDContainerData = {\r\n container: container,\r\n perspectiveElem: perspectiveElem,\r\n startPos: pos,\r\n endPos: pos,\r\n type: type,\r\n };\r\n this.threeDElements.push(threeDContainerData);\r\n return threeDContainerData;\r\n};\r\n\r\nHybridRenderer.prototype.build3dContainers = function () {\r\n var i;\r\n var len = this.layers.length;\r\n var lastThreeDContainerData;\r\n var currentContainer = '';\r\n for (i = 0; i < len; i += 1) {\r\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\r\n if (currentContainer !== '3d') {\r\n currentContainer = '3d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\r\n }\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n } else {\r\n if (currentContainer !== '2d') {\r\n currentContainer = '2d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\r\n }\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n }\r\n }\r\n len = this.threeDElements.length;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.addTo3dContainer = function (elem, pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n while (i < len) {\r\n if (pos <= this.threeDElements[i].endPos) {\r\n var j = this.threeDElements[i].startPos;\r\n var nextElement;\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n j += 1;\r\n }\r\n if (nextElement) {\r\n this.threeDElements[i].container.insertBefore(elem, nextElement);\r\n } else {\r\n this.threeDElements[i].container.appendChild(elem);\r\n }\r\n break;\r\n }\r\n i += 1;\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.configAnimation = function (animData) {\r\n var resizerElem = createTag('div');\r\n var wrapper = this.animationItem.wrapper;\r\n var style = resizerElem.style;\r\n style.width = animData.w + 'px';\r\n style.height = animData.h + 'px';\r\n this.resizerElem = resizerElem;\r\n styleDiv(resizerElem);\r\n style.transformStyle = 'flat';\r\n style.mozTransformStyle = 'flat';\r\n style.webkitTransformStyle = 'flat';\r\n if (this.renderConfig.className) {\r\n resizerElem.setAttribute('class', this.renderConfig.className);\r\n }\r\n wrapper.appendChild(resizerElem);\r\n\r\n style.overflow = 'hidden';\r\n var svg = createNS('svg');\r\n svg.setAttribute('width', '1');\r\n svg.setAttribute('height', '1');\r\n styleDiv(svg);\r\n this.resizerElem.appendChild(svg);\r\n var defs = createNS('defs');\r\n svg.appendChild(defs);\r\n this.data = animData;\r\n // Mask animation\r\n this.setupGlobalData(animData, svg);\r\n this.globalData.defs = defs;\r\n this.layers = animData.layers;\r\n this.layerElement = this.resizerElem;\r\n this.build3dContainers();\r\n this.updateContainerSize();\r\n};\r\n\r\nHybridRenderer.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n this.animationItem.container = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n for (i = 0; i < len; i += 1) {\r\n this.elements[i].destroy();\r\n }\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n};\r\n\r\nHybridRenderer.prototype.updateContainerSize = function () {\r\n var elementWidth = this.animationItem.wrapper.offsetWidth;\r\n var elementHeight = this.animationItem.wrapper.offsetHeight;\r\n var elementRel = elementWidth / elementHeight;\r\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\r\n var sx;\r\n var sy;\r\n var tx;\r\n var ty;\r\n if (animationRel > elementRel) {\r\n sx = elementWidth / (this.globalData.compSize.w);\r\n sy = elementWidth / (this.globalData.compSize.w);\r\n tx = 0;\r\n ty = ((elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2);\r\n } else {\r\n sx = elementHeight / (this.globalData.compSize.h);\r\n sy = elementHeight / (this.globalData.compSize.h);\r\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\r\n ty = 0;\r\n }\r\n var style = this.resizerElem.style;\r\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\r\n style.transform = style.webkitTransform;\r\n};\r\n\r\nHybridRenderer.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\r\n\r\nHybridRenderer.prototype.hide = function () {\r\n this.resizerElem.style.display = 'none';\r\n};\r\n\r\nHybridRenderer.prototype.show = function () {\r\n this.resizerElem.style.display = 'block';\r\n};\r\n\r\nHybridRenderer.prototype.initItems = function () {\r\n this.buildAllItems();\r\n if (this.camera) {\r\n this.camera.setup();\r\n } else {\r\n var cWidth = this.globalData.compSize.w;\r\n var cHeight = this.globalData.compSize.h;\r\n var i;\r\n var len = this.threeDElements.length;\r\n for (i = 0; i < len; i += 1) {\r\n var style = this.threeDElements[i].perspectiveElem.style;\r\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\r\n style.perspective = style.webkitPerspective;\r\n }\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n var floatingContainer = createTag('div');\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n};\r\n\r\n/* global createSizedArray, createElementID, PropertyFactory, ShapePropertyFactory, createNS, locationHref */\r\n\r\nfunction MaskElement(data, element, globalData) {\r\n this.data = data;\r\n this.element = element;\r\n this.globalData = globalData;\r\n this.storedData = [];\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.maskElement = null;\r\n var defs = this.globalData.defs;\r\n var i;\r\n var len = this.masksProperties ? this.masksProperties.length : 0;\r\n this.viewData = createSizedArray(len);\r\n this.solidPath = '';\r\n\r\n var path;\r\n var properties = this.masksProperties;\r\n var count = 0;\r\n var currentMasks = [];\r\n var j;\r\n var jLen;\r\n var layerId = createElementID();\r\n var rect;\r\n var expansor;\r\n var feMorph;\r\n var x;\r\n var maskType = 'clipPath';\r\n var maskRef = 'clip-path';\r\n for (i = 0; i < len; i += 1) {\r\n if ((properties[i].mode !== 'a' && properties[i].mode !== 'n') || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n }\r\n\r\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\r\n rect = createNS('rect');\r\n rect.setAttribute('fill', '#ffffff');\r\n rect.setAttribute('width', this.element.comp.data.w || 0);\r\n rect.setAttribute('height', this.element.comp.data.h || 0);\r\n currentMasks.push(rect);\r\n } else {\r\n rect = null;\r\n }\r\n\r\n path = createNS('path');\r\n if (properties[i].mode === 'n') {\r\n // TODO move this to a factory or to a constructor\r\n this.viewData[i] = {\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n elem: path,\r\n lastPath: '',\r\n };\r\n defs.appendChild(path);\r\n } else {\r\n count += 1;\r\n\r\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n path.setAttribute('clip-rule', 'nonzero');\r\n var filterID;\r\n\r\n if (properties[i].x.k !== 0) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\r\n filterID = createElementID();\r\n expansor = createNS('filter');\r\n expansor.setAttribute('id', filterID);\r\n feMorph = createNS('feMorphology');\r\n feMorph.setAttribute('operator', 'erode');\r\n feMorph.setAttribute('in', 'SourceGraphic');\r\n feMorph.setAttribute('radius', '0');\r\n expansor.appendChild(feMorph);\r\n defs.appendChild(expansor);\r\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n } else {\r\n feMorph = null;\r\n x = null;\r\n }\r\n\r\n // TODO move this to a factory or to a constructor\r\n this.storedData[i] = {\r\n elem: path,\r\n x: x,\r\n expan: feMorph,\r\n lastPath: '',\r\n lastOperator: '',\r\n filterId: filterID,\r\n lastRadius: 0,\r\n };\r\n if (properties[i].mode === 'i') {\r\n jLen = currentMasks.length;\r\n var g = createNS('g');\r\n for (j = 0; j < jLen; j += 1) {\r\n g.appendChild(currentMasks[j]);\r\n }\r\n var mask = createNS('mask');\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.setAttribute('id', layerId + '_' + count);\r\n mask.appendChild(path);\r\n defs.appendChild(mask);\r\n g.setAttribute('mask', 'url(' + locationHref + '#' + layerId + '_' + count + ')');\r\n\r\n currentMasks.length = 0;\r\n currentMasks.push(g);\r\n } else {\r\n currentMasks.push(path);\r\n }\r\n if (properties[i].inv && !this.solidPath) {\r\n this.solidPath = this.createLayerSolidPath();\r\n }\r\n // TODO move this to a factory or to a constructor\r\n this.viewData[i] = {\r\n elem: path,\r\n lastPath: '',\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n invRect: rect,\r\n };\r\n if (!this.viewData[i].prop.k) {\r\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n }\r\n }\r\n\r\n this.maskElement = createNS(maskType);\r\n\r\n len = currentMasks.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.maskElement.appendChild(currentMasks[i]);\r\n }\r\n\r\n if (count > 0) {\r\n this.maskElement.setAttribute('id', layerId);\r\n this.element.maskedElement.setAttribute(maskRef, 'url(' + locationHref + '#' + layerId + ')');\r\n defs.appendChild(this.maskElement);\r\n }\r\n if (this.viewData.length) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n}\r\n\r\nMaskElement.prototype.getMaskProperty = function (pos) {\r\n return this.viewData[pos].prop;\r\n};\r\n\r\nMaskElement.prototype.renderFrame = function (isFirstFrame) {\r\n var finalMat = this.element.finalTransform.mat;\r\n var i;\r\n var len = this.masksProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.viewData[i].prop._mdf || isFirstFrame) {\r\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n if (this.viewData[i].op._mdf || isFirstFrame) {\r\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\r\n }\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\r\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\r\n }\r\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\r\n var feMorph = this.storedData[i].expan;\r\n if (this.storedData[i].x.v < 0) {\r\n if (this.storedData[i].lastOperator !== 'erode') {\r\n this.storedData[i].lastOperator = 'erode';\r\n this.storedData[i].elem.setAttribute('filter', 'url(' + locationHref + '#' + this.storedData[i].filterId + ')');\r\n }\r\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\r\n } else {\r\n if (this.storedData[i].lastOperator !== 'dilate') {\r\n this.storedData[i].lastOperator = 'dilate';\r\n this.storedData[i].elem.setAttribute('filter', null);\r\n }\r\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nMaskElement.prototype.getMaskelement = function () {\r\n return this.maskElement;\r\n};\r\n\r\nMaskElement.prototype.createLayerSolidPath = function () {\r\n var path = 'M0,0 ';\r\n path += ' h' + this.globalData.compSize.w;\r\n path += ' v' + this.globalData.compSize.h;\r\n path += ' h-' + this.globalData.compSize.w;\r\n path += ' v-' + this.globalData.compSize.h + ' ';\r\n return path;\r\n};\r\n\r\nMaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\r\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\r\n var i;\r\n var len;\r\n len = pathNodes._length;\r\n for (i = 1; i < len; i += 1) {\r\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];\r\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];\r\n }\r\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];\r\n if (pathNodes.c && len > 1) {\r\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];\r\n }\r\n // pathNodes.__renderedString = pathString;\r\n\r\n if (viewData.lastPath !== pathString) {\r\n var pathShapeValue = '';\r\n if (viewData.elem) {\r\n if (pathNodes.c) {\r\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\r\n }\r\n viewData.elem.setAttribute('d', pathShapeValue);\r\n }\r\n viewData.lastPath = pathString;\r\n }\r\n};\r\n\r\nMaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n this.globalData = null;\r\n this.maskElement = null;\r\n this.data = null;\r\n this.masksProperties = null;\r\n};\r\n\r\n/**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\r\n\r\nfunction HierarchyElement() {}\r\n\r\nHierarchyElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\r\n initHierarchy: function () {\r\n // element's parent list\r\n this.hierarchy = [];\r\n // if element is parent of another layer _isParent will be true\r\n this._isParent = false;\r\n this.checkParenting();\r\n },\r\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 */\r\n setHierarchy: function (hierarchy) {\r\n this.hierarchy = hierarchy;\r\n },\r\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\r\n setAsParent: function () {\r\n this._isParent = true;\r\n },\r\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\r\n checkParenting: function () {\r\n if (this.data.parent !== undefined) {\r\n this.comp.buildElementParenting(this, this.data.parent, []);\r\n }\r\n },\r\n};\r\n\r\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 */\r\n\r\nfunction FrameElement() {}\r\n\r\nFrameElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\r\n initFrame: function () {\r\n // set to true when inpoint is rendered\r\n this._isFirstFrame = false;\r\n // list of animated properties\r\n this.dynamicProperties = [];\r\n // If layer has been modified in current tick this will be true\r\n this._mdf = false;\r\n },\r\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 */\r\n prepareProperties: function (num, isVisible) {\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (isVisible || (this._isParent && this.dynamicProperties[i].propType === 'transform')) {\r\n this.dynamicProperties[i].getValue();\r\n if (this.dynamicProperties[i]._mdf) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n },\r\n addDynamicProperty: function (prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n }\r\n },\r\n};\r\n\r\n/* global TransformPropertyFactory, Matrix */\r\n\r\nfunction TransformElement() {}\r\n\r\nTransformElement.prototype = {\r\n initTransform: function () {\r\n this.finalTransform = {\r\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : { o: 0 },\r\n _matMdf: false,\r\n _opMdf: false,\r\n mat: new Matrix(),\r\n };\r\n if (this.data.ao) {\r\n this.finalTransform.mProp.autoOriented = true;\r\n }\r\n\r\n // TODO: check TYPE 11: Guided elements\r\n if (this.data.ty !== 11) {\r\n // this.createElements();\r\n }\r\n },\r\n renderTransform: function () {\r\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\r\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\r\n\r\n if (this.hierarchy) {\r\n var mat;\r\n var finalMat = this.finalTransform.mat;\r\n var i = 0;\r\n var len = this.hierarchy.length;\r\n // Checking if any of the transformation matrices in the hierarchy chain has changed.\r\n if (!this.finalTransform._matMdf) {\r\n while (i < len) {\r\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\r\n this.finalTransform._matMdf = true;\r\n break;\r\n }\r\n i += 1;\r\n }\r\n }\r\n\r\n if (this.finalTransform._matMdf) {\r\n mat = this.finalTransform.mProp.v.props;\r\n finalMat.cloneFromProps(mat);\r\n for (i = 0; i < len; i += 1) {\r\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\r\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\r\n }\r\n }\r\n }\r\n },\r\n globalToLocal: function (pt) {\r\n var transforms = [];\r\n transforms.push(this.finalTransform);\r\n var flag = true;\r\n var comp = this.comp;\r\n while (flag) {\r\n if (comp.finalTransform) {\r\n if (comp.data.hasMask) {\r\n transforms.splice(0, 0, comp.finalTransform);\r\n }\r\n comp = comp.comp;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n var i;\r\n var len = transforms.length;\r\n var ptNew;\r\n for (i = 0; i < len; i += 1) {\r\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0);\r\n // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\r\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\r\n }\r\n return pt;\r\n },\r\n mHelper: new Matrix(),\r\n};\r\n\r\nfunction RenderableElement() {\r\n\r\n}\r\n\r\nRenderableElement.prototype = {\r\n initRenderable: function () {\r\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\r\n this.isInRange = false;\r\n // layer's display state\r\n this.hidden = false;\r\n // If layer's transparency equals 0, it can be hidden\r\n this.isTransparent = false;\r\n // list of animated components\r\n this.renderableComponents = [];\r\n },\r\n addRenderableComponent: function (component) {\r\n if (this.renderableComponents.indexOf(component) === -1) {\r\n this.renderableComponents.push(component);\r\n }\r\n },\r\n removeRenderableComponent: function (component) {\r\n if (this.renderableComponents.indexOf(component) !== -1) {\r\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\r\n }\r\n },\r\n prepareRenderableFrame: function (num) {\r\n this.checkLayerLimits(num);\r\n },\r\n checkTransparency: function () {\r\n if (this.finalTransform.mProp.o.v <= 0) {\r\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\r\n this.isTransparent = true;\r\n this.hide();\r\n }\r\n } else if (this.isTransparent) {\r\n this.isTransparent = false;\r\n this.show();\r\n }\r\n },\r\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 */\r\n checkLayerLimits: function (num) {\r\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\r\n if (this.isInRange !== true) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n this.isInRange = true;\r\n this.show();\r\n }\r\n } else if (this.isInRange !== false) {\r\n this.globalData._mdf = true;\r\n this.isInRange = false;\r\n this.hide();\r\n }\r\n },\r\n renderRenderable: function () {\r\n var i;\r\n var len = this.renderableComponents.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\r\n }\r\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\r\n },\r\n sourceRectAtTime: function () {\r\n return {\r\n top: 0,\r\n left: 0,\r\n width: 100,\r\n height: 100,\r\n };\r\n },\r\n getLayerSize: function () {\r\n if (this.data.ty === 5) {\r\n return { w: this.data.textData.width, h: this.data.textData.height };\r\n }\r\n return { w: this.data.width, h: this.data.height };\r\n },\r\n};\r\n\r\n/* global extendPrototype, RenderableElement, createProxyFunction */\r\n\r\nfunction RenderableDOMElement() {}\r\n\r\n(function () {\r\n var _prototype = {\r\n initElement: function (data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n },\r\n hide: function () {\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'none';\r\n this.hidden = true;\r\n }\r\n },\r\n show: function () {\r\n if (this.isInRange && !this.isTransparent) {\r\n if (!this.data.hd) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'block';\r\n }\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function () {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n renderInnerContent: function () {},\r\n prepareFrame: function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n this.checkTransparency();\r\n },\r\n destroy: function () {\r\n this.innerElem = null;\r\n this.destroyBaseElement();\r\n },\r\n };\r\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\r\n}());\r\n\r\n/* exported ProcessedElement */\r\n\r\nfunction ProcessedElement(element, position) {\r\n this.elem = element;\r\n this.pos = position;\r\n}\r\n\r\n/* global createNS */\r\n\r\nfunction SVGStyleData(data, level) {\r\n this.data = data;\r\n this.type = data.ty;\r\n this.d = '';\r\n this.lvl = level;\r\n this._mdf = false;\r\n this.closed = data.hd === true;\r\n this.pElem = createNS('path');\r\n this.msElem = null;\r\n}\r\n\r\nSVGStyleData.prototype.reset = function () {\r\n this.d = '';\r\n this._mdf = false;\r\n};\r\n\r\nfunction SVGShapeData(transformers, level, shape) {\r\n this.caches = [];\r\n this.styles = [];\r\n this.transformers = transformers;\r\n this.lStr = '';\r\n this.sh = shape;\r\n this.lvl = level;\r\n // TODO find if there are some cases where _isAnimated can be false.\r\n // For now, since shapes add up with other shapes. They have to be calculated every time.\r\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\r\n this._isAnimated = !!shape.k;\r\n // TODO: commenting this for now since all shapes are animated\r\n var i = 0;\r\n var len = transformers.length;\r\n while (i < len) {\r\n if (transformers[i].mProps.dynamicProperties.length) {\r\n this._isAnimated = true;\r\n break;\r\n }\r\n i += 1;\r\n }\r\n}\r\n\r\nSVGShapeData.prototype.setAsAnimated = function () {\r\n this._isAnimated = true;\r\n};\r\n\r\n/* exported SVGTransformData */\r\n\r\nfunction SVGTransformData(mProps, op, container) {\r\n this.transform = {\r\n mProps: mProps,\r\n op: op,\r\n container: container,\r\n };\r\n this.elements = [];\r\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\r\n}\r\n\r\n/* global DashProperty, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction SVGStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n this._isAnimated = !!this._isAnimated;\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\r\n\r\n/* global PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction SVGFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGFillStyleData);\r\n\r\n/* global PropertyFactory, degToRads, GradientProperty, createElementID, createNS, locationHref,\r\nextendPrototype, DynamicPropertyContainer, lineCapEnum, lineJoinEnum */\r\n\r\nfunction SVGGradientFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.initGradientData(elem, data, styleOb);\r\n}\r\n\r\nSVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\r\n this.h = PropertyFactory.getProp(elem, data.h || { k: 0 }, 0, 0.01, this);\r\n this.a = PropertyFactory.getProp(elem, data.a || { k: 0 }, 0, degToRads, this);\r\n this.g = new GradientProperty(elem, data.g, this);\r\n this.style = styleOb;\r\n this.stops = [];\r\n this.setGradientData(styleOb.pElem, data);\r\n this.setGradientOpacity(data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n};\r\n\r\nSVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\r\n var gradientId = createElementID();\r\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n gfill.setAttribute('id', gradientId);\r\n gfill.setAttribute('spreadMethod', 'pad');\r\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n var stops = [];\r\n var stop;\r\n var j;\r\n var jLen;\r\n jLen = data.g.p * 4;\r\n for (j = 0; j < jLen; j += 4) {\r\n stop = createNS('stop');\r\n gfill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + locationHref + '#' + gradientId + ')');\r\n this.gf = gfill;\r\n this.cst = stops;\r\n};\r\n\r\nSVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\r\n if (this.g._hasOpacity && !this.g._collapsable) {\r\n var stop;\r\n var j;\r\n var jLen;\r\n var mask = createNS('mask');\r\n var maskElement = createNS('path');\r\n mask.appendChild(maskElement);\r\n var opacityId = createElementID();\r\n var maskId = createElementID();\r\n mask.setAttribute('id', maskId);\r\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n opFill.setAttribute('id', opacityId);\r\n opFill.setAttribute('spreadMethod', 'pad');\r\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\r\n var stops = this.stops;\r\n for (j = data.g.p * 4; j < jLen; j += 2) {\r\n stop = createNS('stop');\r\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\r\n opFill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + locationHref + '#' + opacityId + ')');\r\n if (data.ty === 'gs') {\r\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n if (data.lj === 1) {\r\n maskElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n this.of = opFill;\r\n this.ms = mask;\r\n this.ost = stops;\r\n this.maskId = maskId;\r\n styleOb.msElem = maskElement;\r\n }\r\n};\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\r\n\r\n/* global PropertyFactory, DashProperty, extendPrototype, SVGGradientFillStyleData, DynamicPropertyContainer */\r\n\r\nfunction SVGGradientStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.initGradientData(elem, data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n}\r\n\r\nextendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\r\n\r\n/* global createNS */\r\n/* exported ShapeGroupData */\r\n\r\nfunction ShapeGroupData() {\r\n this.it = [];\r\n this.prevViewData = [];\r\n this.gr = createNS('g');\r\n}\r\n\r\n/* global Matrix, buildShapeString, bmFloor */\r\n/* exported SVGElementsRenderer */\r\n\r\nvar SVGElementsRenderer = (function () {\r\n var _identityMatrix = new Matrix();\r\n var _matrixHelper = new Matrix();\r\n\r\n var ob = {\r\n createRenderFunction: createRenderFunction,\r\n };\r\n\r\n function createRenderFunction(data) {\r\n switch (data.ty) {\r\n case 'fl':\r\n return renderFill;\r\n case 'gf':\r\n return renderGradient;\r\n case 'gs':\r\n return renderGradientStroke;\r\n case 'st':\r\n return renderStroke;\r\n case 'sh':\r\n case 'el':\r\n case 'rc':\r\n case 'sr':\r\n return renderPath;\r\n case 'tr':\r\n return renderContentTransform;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n function renderContentTransform(styleData, itemData, isFirstFrame) {\r\n if (isFirstFrame || itemData.transform.op._mdf) {\r\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\r\n }\r\n if (isFirstFrame || itemData.transform.mProps._mdf) {\r\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\r\n }\r\n }\r\n\r\n function renderPath(styleData, itemData, isFirstFrame) {\r\n var j;\r\n var jLen;\r\n var pathStringTransformed;\r\n var redraw;\r\n var pathNodes;\r\n var l;\r\n var lLen = itemData.styles.length;\r\n var lvl = itemData.lvl;\r\n var paths;\r\n var mat;\r\n var props;\r\n var iterations;\r\n var k;\r\n for (l = 0; l < lLen; l += 1) {\r\n redraw = itemData.sh._mdf || isFirstFrame;\r\n if (itemData.styles[l].lvl < lvl) {\r\n mat = _matrixHelper.reset();\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n while (!redraw && iterations > 0) {\r\n redraw = itemData.transformers[k].mProps._mdf || redraw;\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n if (redraw) {\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n while (iterations > 0) {\r\n props = itemData.transformers[k].mProps.v.props;\r\n mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n }\r\n } else {\r\n mat = _identityMatrix;\r\n }\r\n paths = itemData.sh.paths;\r\n jLen = paths._length;\r\n if (redraw) {\r\n pathStringTransformed = '';\r\n for (j = 0; j < jLen; j += 1) {\r\n pathNodes = paths.shapes[j];\r\n if (pathNodes && pathNodes._length) {\r\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\r\n }\r\n }\r\n itemData.caches[l] = pathStringTransformed;\r\n } else {\r\n pathStringTransformed = itemData.caches[l];\r\n }\r\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\r\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\r\n }\r\n }\r\n\r\n function renderFill(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\r\n }\r\n }\r\n\r\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\r\n renderGradient(styleData, itemData, isFirstFrame);\r\n renderStroke(styleData, itemData, isFirstFrame);\r\n }\r\n\r\n function renderGradient(styleData, itemData, isFirstFrame) {\r\n var gfill = itemData.gf;\r\n var hasOpacity = itemData.g._hasOpacity;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\r\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\r\n }\r\n if (itemData.s._mdf || isFirstFrame) {\r\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\r\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\r\n gfill.setAttribute(attr1, pt1[0]);\r\n gfill.setAttribute(attr2, pt1[1]);\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute(attr1, pt1[0]);\r\n itemData.of.setAttribute(attr2, pt1[1]);\r\n }\r\n }\r\n var stops;\r\n var i;\r\n var len;\r\n var stop;\r\n if (itemData.g._cmdf || isFirstFrame) {\r\n stops = itemData.cst;\r\n var cValues = itemData.g.c;\r\n len = stops.length;\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n stop.setAttribute('offset', cValues[i * 4] + '%');\r\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\r\n }\r\n }\r\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\r\n var oValues = itemData.g.o;\r\n if (itemData.g._collapsable) {\r\n stops = itemData.cst;\r\n } else {\r\n stops = itemData.ost;\r\n }\r\n len = stops.length;\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n if (!itemData.g._collapsable) {\r\n stop.setAttribute('offset', oValues[i * 2] + '%');\r\n }\r\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\r\n }\r\n }\r\n if (styleData.t === 1) {\r\n if (itemData.e._mdf || isFirstFrame) {\r\n gfill.setAttribute('x2', pt2[0]);\r\n gfill.setAttribute('y2', pt2[1]);\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('x2', pt2[0]);\r\n itemData.of.setAttribute('y2', pt2[1]);\r\n }\r\n }\r\n } else {\r\n var rad;\r\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n gfill.setAttribute('r', rad);\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('r', rad);\r\n }\r\n }\r\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\r\n if (!rad) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n }\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n\r\n var percent = itemData.h.v;\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n gfill.setAttribute('fx', x);\r\n gfill.setAttribute('fy', y);\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('fx', x);\r\n itemData.of.setAttribute('fy', y);\r\n }\r\n }\r\n // gfill.setAttribute('fy','200');\r\n }\r\n }\r\n\r\n function renderStroke(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\r\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\r\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\r\n }\r\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\r\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\r\n }\r\n if (itemData.w._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\r\n if (styleElem.msElem) {\r\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\r\n }\r\n }\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\n/* global Matrix */\r\n\r\nfunction ShapeTransformManager() {\r\n this.sequences = {};\r\n this.sequenceList = [];\r\n this.transform_key_count = 0;\r\n}\r\n\r\nShapeTransformManager.prototype = {\r\n addTransformSequence: function (transforms) {\r\n var i;\r\n var len = transforms.length;\r\n var key = '_';\r\n for (i = 0; i < len; i += 1) {\r\n key += transforms[i].transform.key + '_';\r\n }\r\n var sequence = this.sequences[key];\r\n if (!sequence) {\r\n sequence = {\r\n transforms: [].concat(transforms),\r\n finalTransform: new Matrix(),\r\n _mdf: false,\r\n };\r\n this.sequences[key] = sequence;\r\n this.sequenceList.push(sequence);\r\n }\r\n return sequence;\r\n },\r\n processSequence: function (sequence, isFirstFrame) {\r\n var i = 0;\r\n var len = sequence.transforms.length;\r\n var _mdf = isFirstFrame;\r\n while (i < len && !isFirstFrame) {\r\n if (sequence.transforms[i].transform.mProps._mdf) {\r\n _mdf = true;\r\n break;\r\n }\r\n i += 1;\r\n }\r\n if (_mdf) {\r\n var props;\r\n sequence.finalTransform.reset();\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n props = sequence.transforms[i].transform.mProps.v.props;\r\n sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\r\n }\r\n }\r\n sequence._mdf = _mdf;\r\n },\r\n processSequences: function (isFirstFrame) {\r\n var i;\r\n var len = this.sequenceList.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.processSequence(this.sequenceList[i], isFirstFrame);\r\n }\r\n },\r\n getNewKey: function () {\r\n this.transform_key_count += 1;\r\n return '_' + this.transform_key_count;\r\n },\r\n};\r\n\r\n/* global ShapePropertyFactory, SVGShapeData */\r\n\r\nfunction CVShapeData(element, data, styles, transformsManager) {\r\n this.styledShapes = [];\r\n this.tr = [0, 0, 0, 0, 0, 0];\r\n var ty = 4;\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\r\n var i;\r\n var len = styles.length;\r\n var styledShape;\r\n for (i = 0; i < len; i += 1) {\r\n if (!styles[i].closed) {\r\n styledShape = {\r\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\r\n trNodes: [],\r\n };\r\n this.styledShapes.push(styledShape);\r\n styles[i].elements.push(styledShape);\r\n }\r\n }\r\n}\r\n\r\nCVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\r\n\r\n/* global LayerExpressionInterface, EffectsExpressionInterface, CompExpressionInterface, ShapeExpressionInterface,\r\nTextExpressionInterface, getBlendMode,createElementID, EffectsManager */\r\n\r\nfunction BaseElement() {\r\n}\r\n\r\nBaseElement.prototype = {\r\n checkMasks: function () {\r\n if (!this.data.hasMask) {\r\n return false;\r\n }\r\n var i = 0;\r\n var len = this.data.masksProperties.length;\r\n while (i < len) {\r\n if ((this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false)) {\r\n return true;\r\n }\r\n i += 1;\r\n }\r\n return false;\r\n },\r\n initExpressions: function () {\r\n this.layerInterface = LayerExpressionInterface(this);\r\n if (this.data.hasMask && this.maskManager) {\r\n this.layerInterface.registerMaskInterface(this.maskManager);\r\n }\r\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\r\n this.layerInterface.registerEffectsInterface(effectsInterface);\r\n\r\n if (this.data.ty === 0 || this.data.xt) {\r\n this.compInterface = CompExpressionInterface(this);\r\n } else if (this.data.ty === 4) {\r\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\r\n this.layerInterface.content = this.layerInterface.shapeInterface;\r\n } else if (this.data.ty === 5) {\r\n this.layerInterface.textInterface = TextExpressionInterface(this);\r\n this.layerInterface.text = this.layerInterface.textInterface;\r\n }\r\n },\r\n setBlendMode: function () {\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n var elem = this.baseElement || this.layerElement;\r\n\r\n elem.style['mix-blend-mode'] = blendModeValue;\r\n },\r\n initBaseData: function (data, globalData, comp) {\r\n this.globalData = globalData;\r\n this.comp = comp;\r\n this.data = data;\r\n this.layerId = createElementID();\r\n\r\n // Stretch factor for old animations missing this property.\r\n if (!this.data.sr) {\r\n this.data.sr = 1;\r\n }\r\n // effects manager\r\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\r\n },\r\n getType: function () {\r\n return this.type;\r\n },\r\n sourceRectAtTime: function () {},\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement */\r\n\r\nfunction NullElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initFrame();\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n}\r\n\r\nNullElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n};\r\n\r\nNullElement.prototype.renderFrame = function () {\r\n};\r\n\r\nNullElement.prototype.getBaseElement = function () {\r\n return null;\r\n};\r\n\r\nNullElement.prototype.destroy = function () {\r\n};\r\n\r\nNullElement.prototype.sourceRectAtTime = function () {\r\n};\r\n\r\nNullElement.prototype.hide = function () {\r\n};\r\n\r\nextendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\r\n\r\n/* global filtersFactory, featureSupport, filtersFactory, createElementID, createNS, MaskElement, SVGEffects, locationHref */\r\n\r\nfunction SVGBaseElement() {\r\n}\r\n\r\nSVGBaseElement.prototype = {\r\n initRendererElement: function () {\r\n this.layerElement = createNS('g');\r\n },\r\n createContainerElements: function () {\r\n this.matteElement = createNS('g');\r\n this.transformedElement = this.layerElement;\r\n this.maskedElement = this.layerElement;\r\n this._sizeChanged = false;\r\n var layerElementParent = null;\r\n // If this layer acts as a mask for the following layer\r\n var filId;\r\n var fil;\r\n var gg;\r\n if (this.data.td) {\r\n if (this.data.td == 3 || this.data.td == 1) { // eslint-disable-line eqeqeq\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', this.layerId);\r\n masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\r\n masker.appendChild(this.layerElement);\r\n layerElementParent = masker;\r\n this.globalData.defs.appendChild(masker);\r\n // This is only for IE and Edge when mask if of type alpha\r\n if (!featureSupport.maskType && this.data.td == 1) { // eslint-disable-line eqeqeq\r\n masker.setAttribute('mask-type', 'luminance');\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId);\r\n this.globalData.defs.appendChild(fil);\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n gg.appendChild(this.layerElement);\r\n layerElementParent = gg;\r\n masker.appendChild(gg);\r\n gg.setAttribute('filter', 'url(' + locationHref + '#' + filId + ')');\r\n }\r\n } else if (this.data.td == 2) { // eslint-disable-line eqeqeq\r\n var maskGroup = createNS('mask');\r\n maskGroup.setAttribute('id', this.layerId);\r\n maskGroup.setAttribute('mask-type', 'alpha');\r\n var maskGrouper = createNS('g');\r\n maskGroup.appendChild(maskGrouper);\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId);\r\n /// /\r\n\r\n // This solution doesn't work on Android when meta tag with viewport attribute is set\r\n /* var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n fil.appendChild(feColorMatrix); */\r\n /// /\r\n var feCTr = createNS('feComponentTransfer');\r\n feCTr.setAttribute('in', 'SourceGraphic');\r\n fil.appendChild(feCTr);\r\n var feFunc = createNS('feFuncA');\r\n feFunc.setAttribute('type', 'table');\r\n feFunc.setAttribute('tableValues', '1.0 0.0');\r\n feCTr.appendChild(feFunc);\r\n /// /\r\n this.globalData.defs.appendChild(fil);\r\n var alphaRect = createNS('rect');\r\n alphaRect.setAttribute('width', this.comp.data.w);\r\n alphaRect.setAttribute('height', this.comp.data.h);\r\n alphaRect.setAttribute('x', '0');\r\n alphaRect.setAttribute('y', '0');\r\n alphaRect.setAttribute('fill', '#ffffff');\r\n alphaRect.setAttribute('opacity', '0');\r\n maskGrouper.setAttribute('filter', 'url(' + locationHref + '#' + filId + ')');\r\n maskGrouper.appendChild(alphaRect);\r\n maskGrouper.appendChild(this.layerElement);\r\n layerElementParent = maskGrouper;\r\n if (!featureSupport.maskType) {\r\n maskGroup.setAttribute('mask-type', 'luminance');\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n maskGrouper.appendChild(alphaRect);\r\n gg.appendChild(this.layerElement);\r\n layerElementParent = gg;\r\n maskGrouper.appendChild(gg);\r\n }\r\n this.globalData.defs.appendChild(maskGroup);\r\n }\r\n } else if (this.data.tt) {\r\n this.matteElement.appendChild(this.layerElement);\r\n layerElementParent = this.matteElement;\r\n this.baseElement = this.matteElement;\r\n } else {\r\n this.baseElement = this.layerElement;\r\n }\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n }\r\n // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\r\n if (this.data.ty === 0 && !this.data.hd) {\r\n var cp = createNS('clipPath');\r\n var pt = createNS('path');\r\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\r\n var clipId = createElementID();\r\n cp.setAttribute('id', clipId);\r\n cp.appendChild(pt);\r\n this.globalData.defs.appendChild(cp);\r\n\r\n if (this.checkMasks()) {\r\n var cpGroup = createNS('g');\r\n cpGroup.setAttribute('clip-path', 'url(' + locationHref + '#' + clipId + ')');\r\n cpGroup.appendChild(this.layerElement);\r\n this.transformedElement = cpGroup;\r\n if (layerElementParent) {\r\n layerElementParent.appendChild(this.transformedElement);\r\n } else {\r\n this.baseElement = this.transformedElement;\r\n }\r\n } else {\r\n this.layerElement.setAttribute('clip-path', 'url(' + locationHref + '#' + clipId + ')');\r\n }\r\n }\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function () {\r\n if (this.finalTransform._matMdf) {\r\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\r\n }\r\n if (this.finalTransform._opMdf) {\r\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\r\n }\r\n },\r\n destroyBaseElement: function () {\r\n this.layerElement = null;\r\n this.matteElement = null;\r\n this.maskManager.destroy();\r\n },\r\n getBaseElement: function () {\r\n if (this.data.hd) {\r\n return null;\r\n }\r\n return this.baseElement;\r\n },\r\n createRenderableComponents: function () {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n this.renderableEffectsManager = new SVGEffects(this);\r\n },\r\n setMatte: function (id) {\r\n if (!this.matteElement) {\r\n return;\r\n }\r\n this.matteElement.setAttribute('mask', 'url(' + locationHref + '#' + id + ')');\r\n },\r\n};\r\n\r\n/* global ProcessedElement */\r\n\r\nfunction IShapeElement() {\r\n}\r\n\r\nIShapeElement.prototype = {\r\n addShapeToModifiers: function (data) {\r\n var i;\r\n var len = this.shapeModifiers.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.shapeModifiers[i].addShape(data);\r\n }\r\n },\r\n isShapeInAnimatedModifiers: function (data) {\r\n var i = 0;\r\n var len = this.shapeModifiers.length;\r\n while (i < len) {\r\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n renderModifiers: function () {\r\n if (!this.shapeModifiers.length) {\r\n return;\r\n }\r\n var i;\r\n var len = this.shapes.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].sh.reset();\r\n }\r\n\r\n len = this.shapeModifiers.length;\r\n var shouldBreakProcess;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame);\r\n // workaround to fix cases where a repeater resets the shape so the following processes get called twice\r\n // TODO: find a better solution for this\r\n if (shouldBreakProcess) {\r\n break;\r\n }\r\n }\r\n },\r\n\r\n searchProcessedElement: function (elem) {\r\n var elements = this.processedElements;\r\n var i = 0;\r\n var len = elements.length;\r\n while (i < len) {\r\n if (elements[i].elem === elem) {\r\n return elements[i].pos;\r\n }\r\n i += 1;\r\n }\r\n return 0;\r\n },\r\n addProcessedElement: function (elem, pos) {\r\n var elements = this.processedElements;\r\n var i = elements.length;\r\n while (i) {\r\n i -= 1;\r\n if (elements[i].elem === elem) {\r\n elements[i].pos = pos;\r\n return;\r\n }\r\n }\r\n elements.push(new ProcessedElement(elem, pos));\r\n },\r\n prepareFrame: function (num) {\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n },\r\n};\r\n\r\n/* global TextProperty, TextAnimatorProperty, buildShapeString, LetterProps */\r\n\r\nfunction ITextElement() {\r\n}\r\n\r\nITextElement.prototype.initElement = function (data, globalData, comp) {\r\n this.lettersChangedFlag = true;\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\r\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n this.textAnimator.searchProperties(this.dynamicProperties);\r\n};\r\n\r\nITextElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\r\n this.buildNewText();\r\n this.textProperty._isFirstFrame = false;\r\n this.textProperty._mdf = false;\r\n }\r\n};\r\n\r\nITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\r\n var j;\r\n var jLen = shapes.length;\r\n var pathNodes;\r\n var shapeStr = '';\r\n for (j = 0; j < jLen; j += 1) {\r\n pathNodes = shapes[j].ks.k;\r\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\r\n }\r\n return shapeStr;\r\n};\r\n\r\nITextElement.prototype.updateDocumentData = function (newData, index) {\r\n this.textProperty.updateDocumentData(newData, index);\r\n};\r\n\r\nITextElement.prototype.canResizeFont = function (_canResize) {\r\n this.textProperty.canResizeFont(_canResize);\r\n};\r\n\r\nITextElement.prototype.setMinimumFontSize = function (_fontSize) {\r\n this.textProperty.setMinimumFontSize(_fontSize);\r\n};\r\n\r\nITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\r\n if (documentData.ps) {\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n matrixHelper.translate(0, -documentData.ls, 0);\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\r\n break;\r\n case 2:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\r\n break;\r\n default:\r\n break;\r\n }\r\n matrixHelper.translate(xPos, yPos, 0);\r\n};\r\n\r\nITextElement.prototype.buildColor = function (colorData) {\r\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\r\n};\r\n\r\nITextElement.prototype.emptyProp = new LetterProps();\r\n\r\nITextElement.prototype.destroy = function () {\r\n\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement */\r\n\r\nfunction ICompElement() {}\r\n\r\nextendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\r\n\r\nICompElement.prototype.initElement = function (data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initRenderable();\r\n this.initHierarchy();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n if (this.data.xt || !globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n this.hide();\r\n};\r\n\r\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}; */\r\n\r\nICompElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n if (!this.isInRange && !this.data.xt) {\r\n return;\r\n }\r\n\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n if (timeRemapped === this.data.op) {\r\n timeRemapped = this.data.op - 1;\r\n }\r\n this.renderedFrame = timeRemapped;\r\n } else {\r\n this.renderedFrame = num / this.data.sr;\r\n }\r\n var i;\r\n var len = this.elements.length;\r\n if (!this.completeLayers) {\r\n this.checkLayers(this.renderedFrame);\r\n }\r\n // This iteration needs to be backwards because of how expressions connect between each other\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\r\n if (this.elements[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.renderInnerContent = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.setElements = function (elems) {\r\n this.elements = elems;\r\n};\r\n\r\nICompElement.prototype.getElements = function () {\r\n return this.elements;\r\n};\r\n\r\nICompElement.prototype.destroyElements = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.destroy = function () {\r\n this.destroyElements();\r\n this.destroyBaseElement();\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, createNS */\r\n\r\nfunction IImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n this.sourceRect = {\r\n top: 0, left: 0, width: this.assetData.w, height: this.assetData.h,\r\n };\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\r\n\r\nIImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n\r\n this.innerElem = createNS('image');\r\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\r\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\r\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\r\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n\r\n this.layerElement.appendChild(this.innerElem);\r\n};\r\n\r\nIImageElement.prototype.sourceRectAtTime = function () {\r\n return this.sourceRect;\r\n};\r\n\r\n/* global extendPrototype, IImageElement, createNS */\r\n\r\nfunction ISolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([IImageElement], ISolidElement);\r\n\r\nISolidElement.prototype.createContent = function () {\r\n var rect = createNS('rect');\r\n /// /rect.style.width = this.data.sw;\r\n /// /rect.style.height = this.data.sh;\r\n /// /rect.style.fill = this.data.sc;\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.layerElement.appendChild(rect);\r\n};\r\n\r\n/* global PropertyFactory, extendPrototype, RenderableElement, BaseElement, FrameElement */\r\n\r\nfunction AudioElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initBaseData(data, globalData, comp);\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.audio = this.globalData.audioController.createAudio(assetPath);\r\n this._currentTime = 0;\r\n this.globalData.audioController.addAudio(this);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nAudioElement.prototype.prepareFrame = function (num) {\r\n this.prepareRenderableFrame(num, true);\r\n this.prepareProperties(num, true);\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n this._currentTime = timeRemapped;\r\n } else {\r\n this._currentTime = num / this.data.sr;\r\n }\r\n};\r\n\r\nextendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\r\n\r\nAudioElement.prototype.renderFrame = function () {\r\n if (this.isInRange && this._canPlay) {\r\n if (!this._isPlaying) {\r\n this.audio.play();\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n this._isPlaying = true;\r\n } else if (!this.audio.playing()\r\n || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1\r\n ) {\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n }\r\n }\r\n};\r\n\r\nAudioElement.prototype.show = function () {\r\n // this.audio.play()\r\n};\r\n\r\nAudioElement.prototype.hide = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n};\r\n\r\nAudioElement.prototype.pause = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n};\r\n\r\nAudioElement.prototype.resume = function () {\r\n this._canPlay = true;\r\n};\r\n\r\nAudioElement.prototype.setRate = function (rateValue) {\r\n this.audio.rate(rateValue);\r\n};\r\n\r\nAudioElement.prototype.volume = function (volumeValue) {\r\n this.audio.volume(volumeValue);\r\n};\r\n\r\nAudioElement.prototype.getBaseElement = function () {\r\n return null;\r\n};\r\n\r\nAudioElement.prototype.destroy = function () {\r\n};\r\n\r\nAudioElement.prototype.sourceRectAtTime = function () {\r\n};\r\n\r\nAudioElement.prototype.initExpressions = function () {\r\n};\r\n\r\n/* global extendPrototype, RenderableElement, BaseElement, FrameElement, FootageInterface */\r\n\r\nfunction FootageElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\r\n this.initBaseData(data, globalData, comp);\r\n}\r\n\r\nFootageElement.prototype.prepareFrame = function () {\r\n};\r\n\r\nextendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\r\n\r\nFootageElement.prototype.getBaseElement = function () {\r\n return null;\r\n};\r\n\r\nFootageElement.prototype.renderFrame = function () {\r\n};\r\n\r\nFootageElement.prototype.destroy = function () {\r\n};\r\n\r\nFootageElement.prototype.initExpressions = function () {\r\n this.layerInterface = FootageInterface(this);\r\n};\r\n\r\nFootageElement.prototype.getFootageData = function () {\r\n return this.footageData;\r\n};\r\n\r\n/* global createSizedArray, PropertyFactory, extendPrototype, SVGRenderer, ICompElement, SVGBaseElement */\r\n\r\nfunction SVGCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = true;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n // this.layerElement = createNS('g');\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nextendPrototype([SVGRenderer, ICompElement, SVGBaseElement], SVGCompElement);\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement,\r\nRenderableDOMElement, ITextElement, createSizedArray, createNS */\r\n\r\nfunction SVGTextLottieElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.renderType = 'svg';\r\n this.initElement(data, globalData, comp);\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\r\n\r\nSVGTextLottieElement.prototype.createContent = function () {\r\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\r\n this.textContainer = createNS('text');\r\n }\r\n};\r\n\r\nSVGTextLottieElement.prototype.buildTextContents = function (textArray) {\r\n var i = 0;\r\n var len = textArray.length;\r\n var textContents = [];\r\n var currentTextContent = '';\r\n while (i < len) {\r\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\r\n textContents.push(currentTextContent);\r\n currentTextContent = '';\r\n } else {\r\n currentTextContent += textArray[i];\r\n }\r\n i += 1;\r\n }\r\n textContents.push(currentTextContent);\r\n return textContents;\r\n};\r\n\r\nSVGTextLottieElement.prototype.buildNewText = function () {\r\n var i;\r\n var len;\r\n\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\r\n if (documentData.fc) {\r\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\r\n } else {\r\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\r\n }\r\n if (documentData.sc) {\r\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\r\n this.layerElement.setAttribute('stroke-width', documentData.sw);\r\n }\r\n this.layerElement.setAttribute('font-size', documentData.finalSize);\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n if (fontData.fClass) {\r\n this.layerElement.setAttribute('class', fontData.fClass);\r\n } else {\r\n this.layerElement.setAttribute('font-family', fontData.fFamily);\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n this.layerElement.setAttribute('font-style', fStyle);\r\n this.layerElement.setAttribute('font-weight', fWeight);\r\n }\r\n this.layerElement.setAttribute('aria-label', documentData.t);\r\n\r\n var letters = documentData.l || [];\r\n var usesGlyphs = !!this.globalData.fontManager.chars;\r\n len = letters.length;\r\n\r\n var tSpan;\r\n var matrixHelper = this.mHelper;\r\n var shapes;\r\n var shapeStr = '';\r\n var singleShape = this.data.singleShape;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n if (singleShape && !usesGlyphs && !documentData.sz) {\r\n var tElement = this.textContainer;\r\n var justify = 'start';\r\n switch (documentData.j) {\r\n case 1:\r\n justify = 'end';\r\n break;\r\n case 2:\r\n justify = 'middle';\r\n break;\r\n default:\r\n justify = 'start';\r\n break;\r\n }\r\n tElement.setAttribute('text-anchor', justify);\r\n tElement.setAttribute('letter-spacing', trackingOffset);\r\n var textContent = this.buildTextContents(documentData.finalText);\r\n len = textContent.length;\r\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\r\n for (i = 0; i < len; i += 1) {\r\n tSpan = this.textSpans[i] || createNS('tspan');\r\n tSpan.textContent = textContent[i];\r\n tSpan.setAttribute('x', 0);\r\n tSpan.setAttribute('y', yPos);\r\n tSpan.style.display = 'inherit';\r\n tElement.appendChild(tSpan);\r\n this.textSpans[i] = tSpan;\r\n yPos += documentData.finalLineHeight;\r\n }\r\n\r\n this.layerElement.appendChild(tElement);\r\n } else {\r\n var cachedSpansLength = this.textSpans.length;\r\n var shapeData;\r\n var charData;\r\n for (i = 0; i < len; i += 1) {\r\n if (!usesGlyphs || !singleShape || i === 0) {\r\n tSpan = cachedSpansLength > i ? this.textSpans[i] : createNS(usesGlyphs ? 'path' : 'text');\r\n if (cachedSpansLength <= i) {\r\n tSpan.setAttribute('stroke-linecap', 'butt');\r\n tSpan.setAttribute('stroke-linejoin', 'round');\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n this.textSpans[i] = tSpan;\r\n this.layerElement.appendChild(tSpan);\r\n }\r\n tSpan.style.display = 'inherit';\r\n }\r\n\r\n matrixHelper.reset();\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n if (singleShape) {\r\n if (letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n xPos += letters[i].l || 0;\r\n // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\r\n xPos += trackingOffset;\r\n }\r\n if (usesGlyphs) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = (charData && charData.data) || {};\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n if (!singleShape) {\r\n tSpan.setAttribute('d', this.createPathShape(matrixHelper, shapes));\r\n } else {\r\n shapeStr += this.createPathShape(matrixHelper, shapes);\r\n }\r\n } else {\r\n if (singleShape) {\r\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\r\n }\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n }\r\n //\r\n }\r\n if (singleShape && tSpan) {\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n }\r\n while (i < this.textSpans.length) {\r\n this.textSpans[i].style.display = 'none';\r\n i += 1;\r\n }\r\n\r\n this._sizeChanged = true;\r\n};\r\n\r\nSVGTextLottieElement.prototype.sourceRectAtTime = function () {\r\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n this.renderInnerContent();\r\n if (this._sizeChanged) {\r\n this._sizeChanged = false;\r\n var textBox = this.layerElement.getBBox();\r\n this.bbox = {\r\n top: textBox.y,\r\n left: textBox.x,\r\n width: textBox.width,\r\n height: textBox.height,\r\n };\r\n }\r\n return this.bbox;\r\n};\r\n\r\nSVGTextLottieElement.prototype.renderInnerContent = function () {\r\n if (!this.data.singleShape) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\r\n this._sizeChanged = true;\r\n var i;\r\n var len;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n\r\n var letters = this.textProperty.currentData.l;\r\n\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n textSpan = this.textSpans[i];\r\n if (renderedLetter._mdf.m) {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n if (renderedLetter._mdf.o) {\r\n textSpan.setAttribute('opacity', renderedLetter.o);\r\n }\r\n if (renderedLetter._mdf.sw) {\r\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n if (renderedLetter._mdf.sc) {\r\n textSpan.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n if (renderedLetter._mdf.fc) {\r\n textSpan.setAttribute('fill', renderedLetter.fc);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement,\r\nFrameElement, RenderableDOMElement, Matrix, SVGStyleData, SVGStrokeStyleData, SVGFillStyleData,\r\nSVGGradientFillStyleData, SVGGradientStrokeStyleData, locationHref, getBlendMode, ShapeGroupData,\r\nTransformPropertyFactory, SVGTransformData, ShapePropertyFactory, SVGShapeData, SVGElementsRenderer, ShapeModifiers,\r\nlineCapEnum, lineJoinEnum */\r\n\r\nfunction SVGShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = [];\r\n // Full shape data\r\n this.shapesData = data.shapes;\r\n // List of styles that will be applied to shapes\r\n this.stylesList = [];\r\n // List of modifiers that will be applied to shapes\r\n this.shapeModifiers = [];\r\n // List of items in shape tree\r\n this.itemsData = [];\r\n // List of items in previous shape tree\r\n this.processedElements = [];\r\n // List of animated components\r\n this.animatedContents = [];\r\n this.initElement(data, globalData, comp);\r\n // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n // List of elements that have been created\r\n this.prevViewData = [];\r\n // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\r\n\r\nSVGShapeElement.prototype.initSecondaryElement = function () {\r\n};\r\n\r\nSVGShapeElement.prototype.identityMatrix = new Matrix();\r\n\r\nSVGShapeElement.prototype.buildExpressionInterface = function () {};\r\n\r\nSVGShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n};\r\n\r\n/*\r\nThis method searches for multiple shapes that affect a single element and one of them is animated\r\n*/\r\nSVGShapeElement.prototype.filterUniqueShapes = function () {\r\n var i;\r\n var len = this.shapes.length;\r\n var shape;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n var style;\r\n var tempShapes = [];\r\n var areAnimated = false;\r\n for (j = 0; j < jLen; j += 1) {\r\n style = this.stylesList[j];\r\n areAnimated = false;\r\n tempShapes.length = 0;\r\n for (i = 0; i < len; i += 1) {\r\n shape = this.shapes[i];\r\n if (shape.styles.indexOf(style) !== -1) {\r\n tempShapes.push(shape);\r\n areAnimated = shape._isAnimated || areAnimated;\r\n }\r\n }\r\n if (tempShapes.length > 1 && areAnimated) {\r\n this.setShapesAsAnimated(tempShapes);\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\r\n var i;\r\n var len = shapes.length;\r\n for (i = 0; i < len; i += 1) {\r\n shapes[i].setAsAnimated();\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.createStyleElement = function (data, level) {\r\n // TODO: prevent drawing of hidden styles\r\n var elementData;\r\n var styleOb = new SVGStyleData(data, level);\r\n\r\n var pathElement = styleOb.pElem;\r\n if (data.ty === 'st') {\r\n elementData = new SVGStrokeStyleData(this, data, styleOb);\r\n } else if (data.ty === 'fl') {\r\n elementData = new SVGFillStyleData(this, data, styleOb);\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\r\n elementData = new GradientConstructor(this, data, styleOb);\r\n this.globalData.defs.appendChild(elementData.gf);\r\n if (elementData.maskId) {\r\n this.globalData.defs.appendChild(elementData.ms);\r\n this.globalData.defs.appendChild(elementData.of);\r\n pathElement.setAttribute('mask', 'url(' + locationHref + '#' + elementData.maskId + ')');\r\n }\r\n }\r\n\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n pathElement.setAttribute('fill-opacity', '0');\r\n if (data.lj === 1) {\r\n pathElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n\r\n if (data.r === 2) {\r\n pathElement.setAttribute('fill-rule', 'evenodd');\r\n }\r\n\r\n if (data.ln) {\r\n pathElement.setAttribute('id', data.ln);\r\n }\r\n if (data.cl) {\r\n pathElement.setAttribute('class', data.cl);\r\n }\r\n if (data.bm) {\r\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n this.stylesList.push(styleOb);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createGroupElement = function (data) {\r\n var elementData = new ShapeGroupData();\r\n if (data.ln) {\r\n elementData.gr.setAttribute('id', data.ln);\r\n }\r\n if (data.cl) {\r\n elementData.gr.setAttribute('class', data.cl);\r\n }\r\n if (data.bm) {\r\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createTransformElement = function (data, container) {\r\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\r\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\r\n var ty = 4;\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\r\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\r\n var i = 0;\r\n var len = this.animatedContents.length;\r\n while (i < len) {\r\n if (this.animatedContents[i].element === element) {\r\n return;\r\n }\r\n i += 1;\r\n }\r\n this.animatedContents.push({\r\n fn: SVGElementsRenderer.createRenderFunction(data),\r\n element: element,\r\n data: data,\r\n });\r\n};\r\n\r\nSVGShapeElement.prototype.setElementStyles = function (elementData) {\r\n var arr = elementData.styles;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (!this.stylesList[j].closed) {\r\n arr.push(this.stylesList[j]);\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n this.renderModifiers();\r\n};\r\n\r\nSVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\r\n var ownTransformers = [].concat(transformers);\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var currentTransform;\r\n var modifier;\r\n var processedPos;\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if (!processedPos) {\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], level);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n if (arr[i]._render) {\r\n if (itemsData[i].style.pElem.parentNode !== container) {\r\n container.appendChild(itemsData[i].style.pElem);\r\n }\r\n }\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\r\n if (arr[i]._render) {\r\n if (itemsData[i].gr.parentNode !== container) {\r\n container.appendChild(itemsData[i].gr);\r\n }\r\n }\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createTransformElement(arr[i], container);\r\n }\r\n currentTransform = itemsData[i].transform;\r\n ownTransformers.push(currentTransform);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\r\n }\r\n this.setElementStyles(itemsData[i]);\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n render = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n ownModifiers.push(modifier);\r\n }\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n len = ownStyles.length;\r\n for (i = 0; i < len; i += 1) {\r\n ownStyles[i].closed = true;\r\n }\r\n len = ownModifiers.length;\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.renderInnerContent = function () {\r\n this.renderModifiers();\r\n var i;\r\n var len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.stylesList[i].reset();\r\n }\r\n this.renderShape();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\r\n if (this.stylesList[i].msElem) {\r\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d);\r\n // Adding M0 0 fixes same mask bug on all browsers\r\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\r\n }\r\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.renderShape = function () {\r\n var i;\r\n var len = this.animatedContents.length;\r\n var animatedContent;\r\n for (i = 0; i < len; i += 1) {\r\n animatedContent = this.animatedContents[i];\r\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\r\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.destroy = function () {\r\n this.destroyBaseElement();\r\n this.shapesData = null;\r\n this.itemsData = null;\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGTintFilter(filter, filterManager) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\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');\r\n feColorMatrix.setAttribute('result', 'f1');\r\n filter.appendChild(feColorMatrix);\r\n feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', 'f2');\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n if (filterManager.effectElements[2].p.v !== 100 || filterManager.effectElements[2].p.k) {\r\n var feMerge = createNS('feMerge');\r\n filter.appendChild(feMerge);\r\n var feMergeNode;\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', 'SourceGraphic');\r\n feMerge.appendChild(feMergeNode);\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', 'f2');\r\n feMerge.appendChild(feMergeNode);\r\n }\r\n}\r\n\r\nSVGTintFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var colorBlack = this.filterManager.effectElements[0].p.v;\r\n var colorWhite = this.filterManager.effectElements[1].p.v;\r\n var opacity = this.filterManager.effectElements[2].p.v / 100;\r\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 ' + opacity + ' 0');\r\n }\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGFillFilter(filter, filterManager) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n}\r\nSVGFillFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color = this.filterManager.effectElements[2].p.v;\r\n var opacity = this.filterManager.effectElements[6].p.v;\r\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');\r\n }\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGGaussianBlurEffect(filter, filterManager) {\r\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\r\n filter.setAttribute('x', '-100%');\r\n filter.setAttribute('y', '-100%');\r\n filter.setAttribute('width', '300%');\r\n filter.setAttribute('height', '300%');\r\n\r\n this.filterManager = filterManager;\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n filter.appendChild(feGaussianBlur);\r\n this.feGaussianBlur = feGaussianBlur;\r\n}\r\n\r\nSVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n // Empirical value, matching AE's blur appearance.\r\n var kBlurrinessToSigma = 0.3;\r\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma;\r\n\r\n // Dimensions mapping:\r\n //\r\n // 1 -> horizontal & vertical\r\n // 2 -> horizontal only\r\n // 3 -> vertical only\r\n //\r\n var dimensions = this.filterManager.effectElements[1].p.v;\r\n var sigmaX = (dimensions == 3) ? 0 : sigma; // eslint-disable-line eqeqeq\r\n var sigmaY = (dimensions == 2) ? 0 : sigma; // eslint-disable-line eqeqeq\r\n\r\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY);\r\n\r\n // Repeat edges mapping:\r\n //\r\n // 0 -> off -> duplicate\r\n // 1 -> on -> wrap\r\n var edgeMode = (this.filterManager.effectElements[2].p.v == 1) ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\r\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\r\n }\r\n};\r\n\r\n/* global createNS, createElementID, locationHref, bmFloor */\r\n\r\nfunction SVGStrokeEffect(elem, filterManager) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.elem = elem;\r\n this.paths = [];\r\n}\r\n\r\nSVGStrokeEffect.prototype.initialize = function () {\r\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n var path;\r\n var groupPath;\r\n var i;\r\n var len;\r\n if (this.filterManager.effectElements[1].p.v === 1) {\r\n len = this.elem.maskManager.masksProperties.length;\r\n i = 0;\r\n } else {\r\n i = this.filterManager.effectElements[0].p.v - 1;\r\n len = i + 1;\r\n }\r\n groupPath = createNS('g');\r\n groupPath.setAttribute('fill', 'none');\r\n groupPath.setAttribute('stroke-linecap', 'round');\r\n groupPath.setAttribute('stroke-dashoffset', 1);\r\n for (i; i < len; i += 1) {\r\n path = createNS('path');\r\n groupPath.appendChild(path);\r\n this.paths.push({ p: path, m: i });\r\n }\r\n if (this.filterManager.effectElements[10].p.v === 3) {\r\n var mask = createNS('mask');\r\n var id = createElementID();\r\n mask.setAttribute('id', id);\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.appendChild(groupPath);\r\n this.elem.globalData.defs.appendChild(mask);\r\n var g = createNS('g');\r\n g.setAttribute('mask', 'url(' + locationHref + '#' + id + ')');\r\n while (elemChildren[0]) {\r\n g.appendChild(elemChildren[0]);\r\n }\r\n this.elem.layerElement.appendChild(g);\r\n this.masker = mask;\r\n groupPath.setAttribute('stroke', '#fff');\r\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (this.filterManager.effectElements[10].p.v === 2) {\r\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n while (elemChildren.length) {\r\n this.elem.layerElement.removeChild(elemChildren[0]);\r\n }\r\n }\r\n this.elem.layerElement.appendChild(groupPath);\r\n this.elem.layerElement.removeAttribute('mask');\r\n groupPath.setAttribute('stroke', '#fff');\r\n }\r\n this.initialized = true;\r\n this.pathMasker = groupPath;\r\n};\r\n\r\nSVGStrokeEffect.prototype.renderFrame = function (forceRender) {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n var i;\r\n var len = this.paths.length;\r\n var mask;\r\n var path;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.paths[i].m !== -1) {\r\n mask = this.elem.maskManager.viewData[this.paths[i].m];\r\n path = this.paths[i].p;\r\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\r\n path.setAttribute('d', mask.lastPath);\r\n }\r\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) {\r\n var dasharrayValue;\r\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\r\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var l = path.getTotalLength();\r\n dasharrayValue = '0 0 0 ' + l * s + ' ';\r\n var lineLength = l * (e - s);\r\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n var units = Math.floor(lineLength / segment);\r\n var j;\r\n for (j = 0; j < units; j += 1) {\r\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\r\n }\r\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\r\n } else {\r\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n }\r\n path.setAttribute('stroke-dasharray', dasharrayValue);\r\n }\r\n }\r\n }\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\r\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\r\n }\r\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\r\n var color = this.filterManager.effectElements[3].p.v;\r\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\r\n }\r\n }\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGTritoneFilter(filter, filterManager) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\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');\r\n feColorMatrix.setAttribute('result', 'f1');\r\n filter.appendChild(feColorMatrix);\r\n var feComponentTransfer = createNS('feComponentTransfer');\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n this.matrixFilter = feComponentTransfer;\r\n var feFuncR = createNS('feFuncR');\r\n feFuncR.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncR);\r\n this.feFuncR = feFuncR;\r\n var feFuncG = createNS('feFuncG');\r\n feFuncG.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncG);\r\n this.feFuncG = feFuncG;\r\n var feFuncB = createNS('feFuncB');\r\n feFuncB.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncB);\r\n this.feFuncB = feFuncB;\r\n}\r\n\r\nSVGTritoneFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color1 = this.filterManager.effectElements[0].p.v;\r\n var color2 = this.filterManager.effectElements[1].p.v;\r\n var color3 = this.filterManager.effectElements[2].p.v;\r\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\r\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\r\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\r\n this.feFuncR.setAttribute('tableValues', tableR);\r\n this.feFuncG.setAttribute('tableValues', tableG);\r\n this.feFuncB.setAttribute('tableValues', tableB);\r\n // var opacity = this.filterManager.effectElements[2].p.v/100;\r\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 ' + opacity + ' 0');\r\n }\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGProLevelsFilter(filter, filterManager) {\r\n this.filterManager = filterManager;\r\n var effectElements = this.filterManager.effectElements;\r\n var feComponentTransfer = createNS('feComponentTransfer');\r\n\r\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) {\r\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\r\n }\r\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) {\r\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\r\n }\r\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) {\r\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\r\n }\r\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) {\r\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\r\n }\r\n\r\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n feComponentTransfer = createNS('feComponentTransfer');\r\n }\r\n\r\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) {\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\r\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\r\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\r\n }\r\n}\r\n\r\nSVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\r\n var feFunc = createNS(type);\r\n feFunc.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFunc);\r\n return feFunc;\r\n};\r\n\r\nSVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\r\n var cnt = 0;\r\n var segments = 256;\r\n var perc;\r\n var min = Math.min(inputBlack, inputWhite);\r\n var max = Math.max(inputBlack, inputWhite);\r\n var table = Array.call(null, { length: segments });\r\n var colorValue;\r\n var pos = 0;\r\n var outputDelta = outputWhite - outputBlack;\r\n var inputDelta = inputWhite - inputBlack;\r\n while (cnt <= 256) {\r\n perc = cnt / 256;\r\n if (perc <= min) {\r\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\r\n } else if (perc >= max) {\r\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\r\n } else {\r\n colorValue = (outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma));\r\n }\r\n table[pos] = colorValue;\r\n pos += 1;\r\n cnt += 256 / (segments - 1);\r\n }\r\n return table.join(' ');\r\n};\r\n\r\nSVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var val;\r\n var effectElements = this.filterManager.effectElements;\r\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)) {\r\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\r\n this.feFuncRComposed.setAttribute('tableValues', val);\r\n this.feFuncGComposed.setAttribute('tableValues', val);\r\n this.feFuncBComposed.setAttribute('tableValues', val);\r\n }\r\n\r\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)) {\r\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\r\n this.feFuncR.setAttribute('tableValues', val);\r\n }\r\n\r\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)) {\r\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\r\n this.feFuncG.setAttribute('tableValues', val);\r\n }\r\n\r\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)) {\r\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\r\n this.feFuncB.setAttribute('tableValues', val);\r\n }\r\n\r\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)) {\r\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\r\n this.feFuncA.setAttribute('tableValues', val);\r\n }\r\n }\r\n};\r\n\r\n/* global createNS, rgbToHex, degToRads */\r\n\r\nfunction SVGDropShadowEffect(filter, filterManager) {\r\n var filterSize = filterManager.container.globalData.renderConfig.filterSize;\r\n filter.setAttribute('x', filterSize.x);\r\n filter.setAttribute('y', filterSize.y);\r\n filter.setAttribute('width', filterSize.width);\r\n filter.setAttribute('height', filterSize.height);\r\n this.filterManager = filterManager;\r\n\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\r\n feGaussianBlur.setAttribute('result', 'drop_shadow_1');\r\n feGaussianBlur.setAttribute('stdDeviation', '0');\r\n this.feGaussianBlur = feGaussianBlur;\r\n filter.appendChild(feGaussianBlur);\r\n\r\n var feOffset = createNS('feOffset');\r\n feOffset.setAttribute('dx', '25');\r\n feOffset.setAttribute('dy', '0');\r\n feOffset.setAttribute('in', 'drop_shadow_1');\r\n feOffset.setAttribute('result', 'drop_shadow_2');\r\n this.feOffset = feOffset;\r\n filter.appendChild(feOffset);\r\n var feFlood = createNS('feFlood');\r\n feFlood.setAttribute('flood-color', '#00ff00');\r\n feFlood.setAttribute('flood-opacity', '1');\r\n feFlood.setAttribute('result', 'drop_shadow_3');\r\n this.feFlood = feFlood;\r\n filter.appendChild(feFlood);\r\n\r\n var feComposite = createNS('feComposite');\r\n feComposite.setAttribute('in', 'drop_shadow_3');\r\n feComposite.setAttribute('in2', 'drop_shadow_2');\r\n feComposite.setAttribute('operator', 'in');\r\n feComposite.setAttribute('result', 'drop_shadow_4');\r\n filter.appendChild(feComposite);\r\n\r\n var feMerge = createNS('feMerge');\r\n filter.appendChild(feMerge);\r\n var feMergeNode;\r\n feMergeNode = createNS('feMergeNode');\r\n feMerge.appendChild(feMergeNode);\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', 'SourceGraphic');\r\n this.feMergeNode = feMergeNode;\r\n this.feMerge = feMerge;\r\n this.originalNodeAdded = false;\r\n feMerge.appendChild(feMergeNode);\r\n}\r\n\r\nSVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\r\n }\r\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\r\n var col = this.filterManager.effectElements[0].p.v;\r\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\r\n }\r\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\r\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\r\n }\r\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\r\n var distance = this.filterManager.effectElements[3].p.v;\r\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\r\n var x = distance * Math.cos(angle);\r\n var y = distance * Math.sin(angle);\r\n this.feOffset.setAttribute('dx', x);\r\n this.feOffset.setAttribute('dy', y);\r\n }\r\n /* if(forceRender || this.filterManager.effectElements[5].p._mdf){\r\n if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n this.feMerge.removeChild(this.feMergeNode);\r\n this.originalNodeAdded = false;\r\n } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n this.feMerge.appendChild(this.feMergeNode);\r\n this.originalNodeAdded = true;\r\n }\r\n } */\r\n }\r\n};\r\n\r\n/* global createElementID, createNS */\r\n\r\nvar _svgMatteSymbols = [];\r\n\r\nfunction SVGMatte3Effect(filterElem, filterManager, elem) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.filterElem = filterElem;\r\n this.elem = elem;\r\n elem.matteElement = createNS('g');\r\n elem.matteElement.appendChild(elem.layerElement);\r\n elem.matteElement.appendChild(elem.transformedElement);\r\n elem.baseElement = elem.matteElement;\r\n}\r\n\r\nSVGMatte3Effect.prototype.findSymbol = function (mask) {\r\n var i = 0;\r\n var len = _svgMatteSymbols.length;\r\n while (i < len) {\r\n if (_svgMatteSymbols[i] === mask) {\r\n return _svgMatteSymbols[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nSVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\r\n var parentNode = mask.layerElement.parentNode;\r\n if (!parentNode) {\r\n return;\r\n }\r\n var children = parentNode.children;\r\n var i = 0;\r\n var len = children.length;\r\n while (i < len) {\r\n if (children[i] === mask.layerElement) {\r\n break;\r\n }\r\n i += 1;\r\n }\r\n var nextChild;\r\n if (i <= len - 2) {\r\n nextChild = children[i + 1];\r\n }\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n if (nextChild) {\r\n parentNode.insertBefore(useElem, nextChild);\r\n } else {\r\n parentNode.appendChild(useElem);\r\n }\r\n};\r\n\r\nSVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\r\n if (!this.findSymbol(mask)) {\r\n var symbolId = createElementID();\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', mask.layerId);\r\n masker.setAttribute('mask-type', 'alpha');\r\n _svgMatteSymbols.push(mask);\r\n var defs = elem.globalData.defs;\r\n defs.appendChild(masker);\r\n var symbol = createNS('symbol');\r\n symbol.setAttribute('id', symbolId);\r\n this.replaceInParent(mask, symbolId);\r\n symbol.appendChild(mask.layerElement);\r\n defs.appendChild(symbol);\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n masker.appendChild(useElem);\r\n mask.data.hd = false;\r\n mask.show();\r\n }\r\n elem.setMatte(mask.layerId);\r\n};\r\n\r\nSVGMatte3Effect.prototype.initialize = function () {\r\n var ind = this.filterManager.effectElements[0].p.v;\r\n var elements = this.elem.comp.elements;\r\n var i = 0;\r\n var len = elements.length;\r\n while (i < len) {\r\n if (elements[i] && elements[i].data.ind === ind) {\r\n this.setElementAsMask(this.elem, elements[i]);\r\n }\r\n i += 1;\r\n }\r\n this.initialized = true;\r\n};\r\n\r\nSVGMatte3Effect.prototype.renderFrame = function () {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n};\r\n\r\n/* global createElementID, filtersFactory, SVGTintFilter, SVGFillFilter, SVGStrokeEffect, SVGTritoneFilter,\r\nSVGProLevelsFilter, SVGDropShadowEffect, SVGMatte3Effect, SVGGaussianBlurEffect, locationHref */\r\n\r\nfunction SVGEffects(elem) {\r\n var i;\r\n var len = elem.data.ef ? elem.data.ef.length : 0;\r\n var filId = createElementID();\r\n var fil = filtersFactory.createFilter(filId, true);\r\n var count = 0;\r\n this.filters = [];\r\n var filterManager;\r\n for (i = 0; i < len; i += 1) {\r\n filterManager = null;\r\n if (elem.data.ef[i].ty === 20) {\r\n count += 1;\r\n filterManager = new SVGTintFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 21) {\r\n count += 1;\r\n filterManager = new SVGFillFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 22) {\r\n filterManager = new SVGStrokeEffect(elem, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 23) {\r\n count += 1;\r\n filterManager = new SVGTritoneFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 24) {\r\n count += 1;\r\n filterManager = new SVGProLevelsFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 25) {\r\n count += 1;\r\n filterManager = new SVGDropShadowEffect(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 28) {\r\n // count += 1;\r\n filterManager = new SVGMatte3Effect(fil, elem.effectsManager.effectElements[i], elem);\r\n } else if (elem.data.ef[i].ty === 29) {\r\n count += 1;\r\n filterManager = new SVGGaussianBlurEffect(fil, elem.effectsManager.effectElements[i]);\r\n }\r\n if (filterManager) {\r\n this.filters.push(filterManager);\r\n }\r\n }\r\n if (count) {\r\n elem.globalData.defs.appendChild(fil);\r\n elem.layerElement.setAttribute('filter', 'url(' + locationHref + '#' + filId + ')');\r\n }\r\n if (this.filters.length) {\r\n elem.addRenderableComponent(this);\r\n }\r\n}\r\n\r\nSVGEffects.prototype.renderFrame = function (_isFirstFrame) {\r\n var i;\r\n var len = this.filters.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.filters[i].renderFrame(_isFirstFrame);\r\n }\r\n};\r\n\r\n/* global Matrix, createTypedArray */\r\n\r\nfunction CVContextData() {\r\n this.saved = [];\r\n this.cArrPos = 0;\r\n this.cTr = new Matrix();\r\n this.cO = 1;\r\n var i;\r\n var len = 15;\r\n this.savedOp = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n this._length = len;\r\n}\r\n\r\nCVContextData.prototype.duplicate = function () {\r\n var newLength = this._length * 2;\r\n var currentSavedOp = this.savedOp;\r\n this.savedOp = createTypedArray('float32', newLength);\r\n this.savedOp.set(currentSavedOp);\r\n var i = 0;\r\n for (i = this._length; i < newLength; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n this._length = newLength;\r\n};\r\n\r\nCVContextData.prototype.reset = function () {\r\n this.cArrPos = 0;\r\n this.cTr.reset();\r\n this.cO = 1;\r\n};\r\n\r\n/* global CVEffects, getBlendMode, CVMaskElement, Matrix */\r\n\r\nfunction CVBaseElement() {\r\n}\r\n\r\nCVBaseElement.prototype = {\r\n createElements: function () {},\r\n initRendererElement: function () {},\r\n createContainerElements: function () {\r\n this.canvasContext = this.globalData.canvasContext;\r\n this.renderableEffectsManager = new CVEffects(this);\r\n },\r\n createContent: function () {},\r\n setBlendMode: function () {\r\n var globalData = this.globalData;\r\n if (globalData.blendMode !== this.data.bm) {\r\n globalData.blendMode = this.data.bm;\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\r\n }\r\n },\r\n createRenderableComponents: function () {\r\n this.maskManager = new CVMaskElement(this.data, this);\r\n },\r\n hideElement: function () {\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n this.hidden = true;\r\n }\r\n },\r\n showElement: function () {\r\n if (this.isInRange && !this.isTransparent) {\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n this.maskManager._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function () {\r\n if (this.hidden || this.data.hd) {\r\n return;\r\n }\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.setBlendMode();\r\n var forceRealStack = this.data.ty === 0;\r\n this.globalData.renderer.save(forceRealStack);\r\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\r\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\r\n this.renderInnerContent();\r\n this.globalData.renderer.restore(forceRealStack);\r\n if (this.maskManager.hasMasks) {\r\n this.globalData.renderer.restore(true);\r\n }\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function () {\r\n this.canvasContext = null;\r\n this.data = null;\r\n this.globalData = null;\r\n this.maskManager.destroy();\r\n },\r\n mHelper: new Matrix(),\r\n};\r\nCVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\r\nCVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, CVBaseElement,HierarchyElement, FrameElement,\r\nRenderableElement, SVGShapeElement, IImageElement, createTag */\r\n\r\nfunction CVImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.img = globalData.imageLoader.getAsset(this.assetData);\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\r\n\r\nCVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\nCVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\nCVImageElement.prototype.createContent = function () {\r\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\r\n var canvas = createTag('canvas');\r\n canvas.width = this.assetData.w;\r\n canvas.height = this.assetData.h;\r\n var ctx = canvas.getContext('2d');\r\n\r\n var imgW = this.img.width;\r\n var imgH = this.img.height;\r\n var imgRel = imgW / imgH;\r\n var canvasRel = this.assetData.w / this.assetData.h;\r\n var widthCrop;\r\n var heightCrop;\r\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\r\n if ((imgRel > canvasRel && par === 'xMidYMid slice') || (imgRel < canvasRel && par !== 'xMidYMid slice')) {\r\n heightCrop = imgH;\r\n widthCrop = heightCrop * canvasRel;\r\n } else {\r\n widthCrop = imgW;\r\n heightCrop = widthCrop / canvasRel;\r\n }\r\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\r\n this.img = canvas;\r\n }\r\n};\r\n\r\nCVImageElement.prototype.renderInnerContent = function () {\r\n this.canvasContext.drawImage(this.img, 0, 0);\r\n};\r\n\r\nCVImageElement.prototype.destroy = function () {\r\n this.img = null;\r\n};\r\n\r\n/* global createSizedArray, PropertyFactory, extendPrototype, CanvasRenderer, ICompElement, CVBaseElement */\r\n\r\nfunction CVCompElement(data, globalData, comp) {\r\n this.completeLayers = false;\r\n this.layers = data.layers;\r\n this.pendingElements = [];\r\n this.elements = createSizedArray(this.layers.length);\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nextendPrototype([CanvasRenderer, ICompElement, CVBaseElement], CVCompElement);\r\n\r\nCVCompElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.beginPath();\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.data.w, 0);\r\n ctx.lineTo(this.data.w, this.data.h);\r\n ctx.lineTo(0, this.data.h);\r\n ctx.lineTo(0, 0);\r\n ctx.clip();\r\n var i;\r\n var len = this.layers.length;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n};\r\n\r\nCVCompElement.prototype.destroy = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n this.layers = null;\r\n this.elements = null;\r\n};\r\n\r\n/* global createSizedArray, ShapePropertyFactory, MaskElement */\r\n\r\nfunction CVMaskElement(data, element) {\r\n this.data = data;\r\n this.element = element;\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.viewData = createSizedArray(this.masksProperties.length);\r\n var i;\r\n var len = this.masksProperties.length;\r\n var hasMasks = false;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n hasMasks = true;\r\n }\r\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\r\n }\r\n this.hasMasks = hasMasks;\r\n if (hasMasks) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n}\r\n\r\nCVMaskElement.prototype.renderFrame = function () {\r\n if (!this.hasMasks) {\r\n return;\r\n }\r\n var transform = this.element.finalTransform.mat;\r\n var ctx = this.element.canvasContext;\r\n var i;\r\n var len = this.masksProperties.length;\r\n var pt;\r\n var pts;\r\n var data;\r\n ctx.beginPath();\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.masksProperties[i].inv) {\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, 0);\r\n }\r\n data = this.viewData[i].v;\r\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\r\n ctx.moveTo(pt[0], pt[1]);\r\n var j;\r\n var jLen = data._length;\r\n for (j = 1; j < jLen; j += 1) {\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n }\r\n this.element.globalData.renderer.save(true);\r\n ctx.clip();\r\n};\r\n\r\nCVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\r\n\r\nCVMaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n};\r\n\r\n/* global ShapeTransformManager, extendPrototype, BaseElement, TransformElement, CVBaseElement, IShapeElement,\r\nHierarchyElement, FrameElement, RenderableElement, RenderableDOMElement, PropertyFactory, degToRads, GradientProperty,\r\nDashProperty, TransformPropertyFactory, CVShapeData, ShapeModifiers, bmFloor, lineCapEnum, lineJoinEnum */\r\n\r\nfunction CVShapeElement(data, globalData, comp) {\r\n this.shapes = [];\r\n this.shapesData = data.shapes;\r\n this.stylesList = [];\r\n this.itemsData = [];\r\n this.prevViewData = [];\r\n this.shapeModifiers = [];\r\n this.processedElements = [];\r\n this.transformsManager = new ShapeTransformManager();\r\n this.initElement(data, globalData, comp);\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\r\n\r\nCVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\r\n\r\nCVShapeElement.prototype.transformHelper = { opacity: 1, _opMdf: false };\r\n\r\nCVShapeElement.prototype.dashResetter = [];\r\n\r\nCVShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n};\r\n\r\nCVShapeElement.prototype.createStyleElement = function (data, transforms) {\r\n var styleElem = {\r\n data: data,\r\n type: data.ty,\r\n preTransforms: this.transformsManager.addTransformSequence(transforms),\r\n transforms: [],\r\n elements: [],\r\n closed: data.hd === true,\r\n };\r\n var elementData = {};\r\n if (data.ty === 'fl' || data.ty === 'st') {\r\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\r\n if (!elementData.c.k) {\r\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\r\n }\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\r\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\r\n elementData.h = PropertyFactory.getProp(this, data.h || { k: 0 }, 0, 0.01, this);\r\n elementData.a = PropertyFactory.getProp(this, data.a || { k: 0 }, 0, degToRads, this);\r\n elementData.g = new GradientProperty(this, data.g, this);\r\n }\r\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n styleElem.lc = lineCapEnum[data.lc || 2];\r\n styleElem.lj = lineJoinEnum[data.lj || 2];\r\n if (data.lj == 1) { // eslint-disable-line eqeqeq\r\n styleElem.ml = data.ml;\r\n }\r\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\r\n if (!elementData.w.k) {\r\n styleElem.wi = elementData.w.v;\r\n }\r\n if (data.d) {\r\n var d = new DashProperty(this, data.d, 'canvas', this);\r\n elementData.d = d;\r\n if (!elementData.d.k) {\r\n styleElem.da = elementData.d.dashArray;\r\n styleElem.do = elementData.d.dashoffset[0];\r\n }\r\n }\r\n } else {\r\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\r\n }\r\n this.stylesList.push(styleElem);\r\n elementData.style = styleElem;\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createGroupElement = function () {\r\n var elementData = {\r\n it: [],\r\n prevViewData: [],\r\n };\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createTransformElement = function (data) {\r\n var elementData = {\r\n transform: {\r\n opacity: 1,\r\n _opMdf: false,\r\n key: this.transformsManager.getNewKey(),\r\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\r\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this),\r\n },\r\n };\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createShapeElement = function (data) {\r\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\r\n\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n};\r\n\r\nCVShapeElement.prototype.addTransformToStyleList = function (transform) {\r\n var i;\r\n var len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.push(transform);\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.removeTransformFromStyleList = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.pop();\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.closeStyles = function (styles) {\r\n var i;\r\n var len = styles.length;\r\n for (i = 0; i < len; i += 1) {\r\n styles[i].closed = true;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var processedPos;\r\n var modifier;\r\n var currentTransform;\r\n var ownTransforms = [].concat(transforms);\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if (!processedPos) {\r\n arr[i]._shouldRender = shouldRender;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n currentTransform = this.createTransformElement(arr[i]);\r\n itemsData[i] = currentTransform;\r\n }\r\n ownTransforms.push(itemsData[i]);\r\n this.addTransformToStyleList(itemsData[i]);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i]);\r\n }\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n shouldRender = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n ownModifiers.push(modifier);\r\n }\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n this.removeTransformFromStyleList();\r\n this.closeStyles(ownStyles);\r\n len = ownModifiers.length;\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderInnerContent = function () {\r\n this.transformHelper.opacity = 1;\r\n this.transformHelper._opMdf = false;\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\r\n};\r\n\r\nCVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\r\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\r\n groupTransform.opacity = parentTransform.opacity;\r\n groupTransform.opacity *= groupTransform.op.v;\r\n groupTransform._opMdf = true;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.drawLayer = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var elems;\r\n var nodes;\r\n var renderer = this.globalData.renderer;\r\n var ctx = this.globalData.canvasContext;\r\n var type;\r\n var currentStyle;\r\n for (i = 0; i < len; i += 1) {\r\n currentStyle = this.stylesList[i];\r\n type = currentStyle.type;\r\n\r\n // Skipping style when\r\n // Stroke width equals 0\r\n // style should not be rendered (extra unused repeaters)\r\n // current opacity equals 0\r\n // global opacity equals 0\r\n if (!(((type === 'st' || type === 'gs') && currentStyle.wi === 0) || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\r\n renderer.save();\r\n elems = currentStyle.elements;\r\n if (type === 'st' || type === 'gs') {\r\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\r\n ctx.lineWidth = currentStyle.wi;\r\n ctx.lineCap = currentStyle.lc;\r\n ctx.lineJoin = currentStyle.lj;\r\n ctx.miterLimit = currentStyle.ml || 0;\r\n } else {\r\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\r\n }\r\n renderer.ctxOpacity(currentStyle.coOp);\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.beginPath();\r\n }\r\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\r\n jLen = elems.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (type === 'st' || type === 'gs') {\r\n ctx.beginPath();\r\n if (currentStyle.da) {\r\n ctx.setLineDash(currentStyle.da);\r\n ctx.lineDashOffset = currentStyle.do;\r\n }\r\n }\r\n nodes = elems[j].trNodes;\r\n kLen = nodes.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (nodes[k].t === 'm') {\r\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\r\n } else if (nodes[k].t === 'c') {\r\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]);\r\n } else {\r\n ctx.closePath();\r\n }\r\n }\r\n if (type === 'st' || type === 'gs') {\r\n ctx.stroke();\r\n if (currentStyle.da) {\r\n ctx.setLineDash(this.dashResetter);\r\n }\r\n }\r\n }\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.fill(currentStyle.r);\r\n }\r\n renderer.restore();\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\r\n var i;\r\n var len = items.length - 1;\r\n var groupTransform;\r\n groupTransform = parentTransform;\r\n for (i = len; i >= 0; i -= 1) {\r\n if (items[i].ty === 'tr') {\r\n groupTransform = data[i].transform;\r\n this.renderShapeTransform(parentTransform, groupTransform);\r\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\r\n this.renderPath(items[i], data[i]);\r\n } else if (items[i].ty === 'fl') {\r\n this.renderFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'st') {\r\n this.renderStroke(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\r\n this.renderGradientFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gr') {\r\n this.renderShape(groupTransform, items[i].it, data[i].it);\r\n } else if (items[i].ty === 'tm') {\r\n //\r\n }\r\n }\r\n if (isMain) {\r\n this.drawLayer();\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\r\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\r\n var shapeNodes = styledShape.trNodes;\r\n var paths = shape.paths;\r\n var i;\r\n var len;\r\n var j;\r\n var jLen = paths._length;\r\n shapeNodes.length = 0;\r\n var groupTransformMat = styledShape.transforms.finalTransform;\r\n for (j = 0; j < jLen; j += 1) {\r\n var pathNodes = paths.shapes[j];\r\n if (pathNodes && pathNodes.v) {\r\n len = pathNodes._length;\r\n for (i = 1; i < len; i += 1) {\r\n if (i === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0),\r\n });\r\n }\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i]),\r\n });\r\n }\r\n if (len === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0),\r\n });\r\n }\r\n if (pathNodes.c && len) {\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0]),\r\n });\r\n shapeNodes.push({\r\n t: 'z',\r\n });\r\n }\r\n }\r\n }\r\n styledShape.trNodes = shapeNodes;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderPath = function (pathData, itemData) {\r\n if (pathData.hd !== true && pathData._shouldRender) {\r\n var i;\r\n var len = itemData.styledShapes.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb('\r\n + bmFloor(itemData.c.v[0]) + ','\r\n + bmFloor(itemData.c.v[1]) + ','\r\n + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var grd;\r\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || (styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf))) {\r\n var ctx = this.globalData.canvasContext;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n if (styleData.t === 1) {\r\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\r\n } else {\r\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n\r\n var percent = itemData.h.v;\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\r\n }\r\n\r\n var i;\r\n var len = styleData.g.p;\r\n var cValues = itemData.g.c;\r\n var opacity = 1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\r\n opacity = itemData.g.o[i * 2 + 1];\r\n }\r\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\r\n }\r\n styleElem.grd = grd;\r\n }\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n};\r\n\r\nCVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n if (d && (d._mdf || this._isFirstFrame)) {\r\n styleElem.da = d.dashArray;\r\n styleElem.do = d.dashoffset[0];\r\n }\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n if (itemData.w._mdf || this._isFirstFrame) {\r\n styleElem.wi = itemData.w.v;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.destroy = function () {\r\n this.shapesData = null;\r\n this.globalData = null;\r\n this.canvasContext = null;\r\n this.stylesList.length = 0;\r\n this.itemsData.length = 0;\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement,\r\nSVGShapeElement, IImageElement */\r\n\r\nfunction CVSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\r\n\r\nCVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\nCVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\nCVSolidElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.fillStyle = this.data.sc;\r\n ctx.fillRect(0, 0, this.data.sw, this.data.sh);\r\n //\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement,\r\nRenderableElement, ITextElement, createTag, createSizedArray */\r\n\r\nfunction CVTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.yOffset = 0;\r\n this.fillColorAnim = false;\r\n this.strokeColorAnim = false;\r\n this.strokeWidthAnim = false;\r\n this.stroke = false;\r\n this.fill = false;\r\n this.justifyOffset = 0;\r\n this.currentRender = null;\r\n this.renderType = 'canvas';\r\n this.values = {\r\n fill: 'rgba(0,0,0,0)',\r\n stroke: 'rgba(0,0,0,0)',\r\n sWidth: 0,\r\n fValue: '',\r\n };\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\r\n\r\nCVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\r\n\r\nCVTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n\r\n var hasFill = false;\r\n if (documentData.fc) {\r\n hasFill = true;\r\n this.values.fill = this.buildColor(documentData.fc);\r\n } else {\r\n this.values.fill = 'rgba(0,0,0,0)';\r\n }\r\n this.fill = hasFill;\r\n var hasStroke = false;\r\n if (documentData.sc) {\r\n hasStroke = true;\r\n this.values.stroke = this.buildColor(documentData.sc);\r\n this.values.sWidth = documentData.sw;\r\n }\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var matrixHelper = this.mHelper;\r\n this.stroke = hasStroke;\r\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\r\n len = documentData.finalText.length;\r\n // this.tHelper.font = this.values.fValue;\r\n var charData;\r\n var shapeData;\r\n var k;\r\n var kLen;\r\n var shapes;\r\n var j;\r\n var jLen;\r\n var pathNodes;\r\n var commands;\r\n var pathArr;\r\n var singleShape = this.data.singleShape;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var cnt = 0;\r\n for (i = 0; i < len; i += 1) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = (charData && charData.data) || {};\r\n matrixHelper.reset();\r\n if (singleShape && letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n jLen = shapes.length;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n if (singleShape) {\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n }\r\n commands = createSizedArray(jLen);\r\n for (j = 0; j < jLen; j += 1) {\r\n kLen = shapes[j].ks.k.i.length;\r\n pathNodes = shapes[j].ks.k;\r\n pathArr = [];\r\n for (k = 1; k < kLen; k += 1) {\r\n if (k === 1) {\r\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));\r\n }\r\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));\r\n }\r\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));\r\n commands[j] = pathArr;\r\n }\r\n if (singleShape) {\r\n xPos += letters[i].l;\r\n xPos += trackingOffset;\r\n }\r\n if (this.textSpans[cnt]) {\r\n this.textSpans[cnt].elem = commands;\r\n } else {\r\n this.textSpans[cnt] = { elem: commands };\r\n }\r\n cnt += 1;\r\n }\r\n};\r\n\r\nCVTextElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.font = this.values.fValue;\r\n ctx.lineCap = 'butt';\r\n ctx.lineJoin = 'miter';\r\n ctx.miterLimit = 4;\r\n\r\n if (!this.data.singleShape) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n }\r\n\r\n var i;\r\n var len;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n\r\n var letters = this.textProperty.currentData.l;\r\n\r\n len = letters.length;\r\n var renderedLetter;\r\n var lastFill = null;\r\n var lastStroke = null;\r\n var lastStrokeW = null;\r\n var commands;\r\n var pathArr;\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n if (renderedLetter) {\r\n this.globalData.renderer.save();\r\n this.globalData.renderer.ctxTransform(renderedLetter.p);\r\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\r\n }\r\n if (this.fill) {\r\n if (renderedLetter && renderedLetter.fc) {\r\n if (lastFill !== renderedLetter.fc) {\r\n lastFill = renderedLetter.fc;\r\n ctx.fillStyle = renderedLetter.fc;\r\n }\r\n } else if (lastFill !== this.values.fill) {\r\n lastFill = this.values.fill;\r\n ctx.fillStyle = this.values.fill;\r\n }\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.fill();\r\n /// ctx.fillText(this.textSpans[i].val,0,0);\r\n }\r\n if (this.stroke) {\r\n if (renderedLetter && renderedLetter.sw) {\r\n if (lastStrokeW !== renderedLetter.sw) {\r\n lastStrokeW = renderedLetter.sw;\r\n ctx.lineWidth = renderedLetter.sw;\r\n }\r\n } else if (lastStrokeW !== this.values.sWidth) {\r\n lastStrokeW = this.values.sWidth;\r\n ctx.lineWidth = this.values.sWidth;\r\n }\r\n if (renderedLetter && renderedLetter.sc) {\r\n if (lastStroke !== renderedLetter.sc) {\r\n lastStroke = renderedLetter.sc;\r\n ctx.strokeStyle = renderedLetter.sc;\r\n }\r\n } else if (lastStroke !== this.values.stroke) {\r\n lastStroke = this.values.stroke;\r\n ctx.strokeStyle = this.values.stroke;\r\n }\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.stroke();\r\n /// ctx.strokeText(letters[i].val,0,0);\r\n }\r\n if (renderedLetter) {\r\n this.globalData.renderer.restore();\r\n }\r\n }\r\n }\r\n};\r\n\r\nfunction CVEffects() {\r\n\r\n}\r\nCVEffects.prototype.renderFrame = function () {};\r\n\r\n/* global createTag, createNS, styleDiv, CVEffects, MaskElement, SVGBaseElement, HybridRenderer */\r\n\r\nfunction HBaseElement() {}\r\nHBaseElement.prototype = {\r\n checkBlendMode: function () {},\r\n initRendererElement: function () {\r\n this.baseElement = createTag(this.data.tg || 'div');\r\n if (this.data.hasMask) {\r\n this.svgElement = createNS('svg');\r\n this.layerElement = createNS('g');\r\n this.maskedElement = this.layerElement;\r\n this.svgElement.appendChild(this.layerElement);\r\n this.baseElement.appendChild(this.svgElement);\r\n } else {\r\n this.layerElement = this.baseElement;\r\n }\r\n styleDiv(this.baseElement);\r\n },\r\n createContainerElements: function () {\r\n this.renderableEffectsManager = new CVEffects(this);\r\n this.transformedElement = this.baseElement;\r\n this.maskedElement = this.layerElement;\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n }\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function () {\r\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\r\n if (this.finalTransform._matMdf) {\r\n var matrixValue = this.finalTransform.mat.toCSS();\r\n transformedElementStyle.transform = matrixValue;\r\n transformedElementStyle.webkitTransform = matrixValue;\r\n }\r\n if (this.finalTransform._opMdf) {\r\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\r\n }\r\n },\r\n renderFrame: function () {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function () {\r\n this.layerElement = null;\r\n this.transformedElement = null;\r\n if (this.matteElement) {\r\n this.matteElement = null;\r\n }\r\n if (this.maskManager) {\r\n this.maskManager.destroy();\r\n this.maskManager = null;\r\n }\r\n },\r\n createRenderableComponents: function () {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n },\r\n addEffects: function () {\r\n },\r\n setMatte: function () {},\r\n};\r\nHBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\r\nHBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\r\nHBaseElement.prototype.buildElementParenting = HybridRenderer.prototype.buildElementParenting;\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\nRenderableDOMElement, createNS, createTag */\r\n\r\nfunction HSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\r\n\r\nHSolidElement.prototype.createContent = function () {\r\n var rect;\r\n if (this.data.hasMask) {\r\n rect = createNS('rect');\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.svgElement.setAttribute('width', this.data.sw);\r\n this.svgElement.setAttribute('height', this.data.sh);\r\n } else {\r\n rect = createTag('div');\r\n rect.style.width = this.data.sw + 'px';\r\n rect.style.height = this.data.sh + 'px';\r\n rect.style.backgroundColor = this.data.sc;\r\n }\r\n this.layerElement.appendChild(rect);\r\n};\r\n\r\n/* global createSizedArray, PropertyFactory, extendPrototype, HybridRenderer, ICompElement, HBaseElement */\r\n\r\nfunction HCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = !data.hasMask;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nextendPrototype([HybridRenderer, ICompElement, HBaseElement], HCompElement);\r\nHCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\r\n\r\nHCompElement.prototype.createContainerElements = function () {\r\n this._createBaseContainerElements();\r\n // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\r\n if (this.data.hasMask) {\r\n this.svgElement.setAttribute('width', this.data.w);\r\n this.svgElement.setAttribute('height', this.data.h);\r\n this.transformedElement = this.baseElement;\r\n } else {\r\n this.transformedElement = this.layerElement;\r\n }\r\n};\r\n\r\nHCompElement.prototype.addTo3dContainer = function (elem, pos) {\r\n var j = 0;\r\n var nextElement;\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n j += 1;\r\n }\r\n if (nextElement) {\r\n this.layerElement.insertBefore(elem, nextElement);\r\n } else {\r\n this.layerElement.appendChild(elem);\r\n }\r\n};\r\n\r\n/* global createNS, extendPrototype, BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement,\r\nHierarchyElement, FrameElement, RenderableElement, createNS, bmMin, bmSqrt, bmMin, bmMax, bmPow */\r\n\r\nfunction HShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = [];\r\n // Full shape data\r\n this.shapesData = data.shapes;\r\n // List of styles that will be applied to shapes\r\n this.stylesList = [];\r\n // List of modifiers that will be applied to shapes\r\n this.shapeModifiers = [];\r\n // List of items in shape tree\r\n this.itemsData = [];\r\n // List of items in previous shape tree\r\n this.processedElements = [];\r\n // List of animated components\r\n this.animatedContents = [];\r\n this.shapesContainer = createNS('g');\r\n this.initElement(data, globalData, comp);\r\n // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n // List of elements that have been created\r\n this.prevViewData = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0,\r\n };\r\n}\r\nextendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\r\nHShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\r\n\r\nHShapeElement.prototype.createContent = function () {\r\n var cont;\r\n this.baseElement.style.fontSize = 0;\r\n if (this.data.hasMask) {\r\n this.layerElement.appendChild(this.shapesContainer);\r\n cont = this.svgElement;\r\n } else {\r\n cont = createNS('svg');\r\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\r\n cont.setAttribute('width', size.w);\r\n cont.setAttribute('height', size.h);\r\n cont.appendChild(this.shapesContainer);\r\n this.layerElement.appendChild(cont);\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\r\n this.filterUniqueShapes();\r\n this.shapeCont = cont;\r\n};\r\n\r\nHShapeElement.prototype.getTransformedPoint = function (transformers, point) {\r\n var i;\r\n var len = transformers.length;\r\n for (i = 0; i < len; i += 1) {\r\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\r\n }\r\n return point;\r\n};\r\n\r\nHShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\r\n var shape = item.sh.v;\r\n var transformers = item.transformers;\r\n var i;\r\n var len = shape._length;\r\n var vPoint;\r\n var oPoint;\r\n var nextIPoint;\r\n var nextVPoint;\r\n if (len <= 1) {\r\n return;\r\n }\r\n for (i = 0; i < len - 1; i += 1) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n if (shape.c) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n};\r\n\r\nHShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\r\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\r\n var bounds = this.shapeBoundingBox;\r\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\r\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\r\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\r\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\r\n};\r\n\r\nHShapeElement.prototype.shapeBoundingBox = {\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n};\r\n\r\nHShapeElement.prototype.tempBoundingBox = {\r\n x: 0,\r\n xMax: 0,\r\n y: 0,\r\n yMax: 0,\r\n width: 0,\r\n height: 0,\r\n};\r\n\r\nHShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\r\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\r\n\r\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) { // eslint-disable-line no-plusplus\r\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\r\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\r\n c = 3 * p1[i] - 3 * p0[i];\r\n\r\n b |= 0; // eslint-disable-line no-bitwise\r\n a |= 0; // eslint-disable-line no-bitwise\r\n c |= 0; // eslint-disable-line no-bitwise\r\n\r\n if (a === 0 && b === 0) {\r\n //\r\n } else if (a === 0) {\r\n t = -c / b;\r\n\r\n if (t > 0 && t < 1) {\r\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\r\n }\r\n } else {\r\n b2ac = b * b - 4 * c * a;\r\n\r\n if (b2ac >= 0) {\r\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\r\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\r\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\r\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\r\n }\r\n }\r\n }\r\n\r\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\r\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\r\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\r\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\r\n};\r\n\r\nHShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\r\n return bmPow(1 - t, 3) * p0[i]\r\n + 3 * bmPow(1 - t, 2) * t * p1[i]\r\n + 3 * (1 - t) * bmPow(t, 2) * p2[i]\r\n + bmPow(t, 3) * p3[i];\r\n};\r\n\r\nHShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\r\n var i;\r\n var len = itemsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (itemsData[i] && itemsData[i].sh) {\r\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\r\n } else if (itemsData[i] && itemsData[i].it) {\r\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\r\n }\r\n }\r\n};\r\n\r\nHShapeElement.prototype.currentBoxContains = function (box) {\r\n return this.currentBBox.x <= box.x\r\n && this.currentBBox.y <= box.y\r\n && this.currentBBox.width + this.currentBBox.x >= box.x + box.width\r\n && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\r\n};\r\n\r\nHShapeElement.prototype.renderInnerContent = function () {\r\n this._renderShapeFrame();\r\n\r\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var tempBoundingBox = this.tempBoundingBox;\r\n var max = 999999;\r\n tempBoundingBox.x = max;\r\n tempBoundingBox.xMax = -max;\r\n tempBoundingBox.y = max;\r\n tempBoundingBox.yMax = -max;\r\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\r\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\r\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y;\r\n // var tempBoundingBox = this.shapeCont.getBBox();\r\n if (this.currentBoxContains(tempBoundingBox)) {\r\n return;\r\n }\r\n var changed = false;\r\n if (this.currentBBox.w !== tempBoundingBox.width) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\r\n changed = true;\r\n }\r\n if (this.currentBBox.h !== tempBoundingBox.height) {\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\r\n changed = true;\r\n }\r\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.currentBBox.x = tempBoundingBox.x;\r\n this.currentBBox.y = tempBoundingBox.y;\r\n\r\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n var shapeStyle = this.shapeCont.style;\r\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n shapeStyle.transform = shapeTransform;\r\n shapeStyle.webkitTransform = shapeTransform;\r\n }\r\n }\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\nRenderableDOMElement, ITextElement, createSizedArray, createTag, styleDiv, createNS, lineJoinEnum, lineCapEnum */\r\n\r\nfunction HTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.textPaths = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0,\r\n };\r\n this.renderType = 'svg';\r\n this.isMasked = false;\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\r\n\r\nHTextElement.prototype.createContent = function () {\r\n this.isMasked = this.checkMasks();\r\n if (this.isMasked) {\r\n this.renderType = 'svg';\r\n this.compW = this.comp.data.w;\r\n this.compH = this.comp.data.h;\r\n this.svgElement.setAttribute('width', this.compW);\r\n this.svgElement.setAttribute('height', this.compH);\r\n var g = createNS('g');\r\n this.maskedElement.appendChild(g);\r\n this.innerElem = g;\r\n } else {\r\n this.renderType = 'html';\r\n this.innerElem = this.layerElement;\r\n }\r\n\r\n this.checkParenting();\r\n};\r\n\r\nHTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n var innerElemStyle = this.innerElem.style;\r\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\r\n innerElemStyle.fill = textColor;\r\n innerElemStyle.color = textColor;\r\n if (documentData.sc) {\r\n innerElemStyle.stroke = this.buildColor(documentData.sc);\r\n innerElemStyle.strokeWidth = documentData.sw + 'px';\r\n }\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n if (!this.globalData.fontManager.chars) {\r\n innerElemStyle.fontSize = documentData.finalSize + 'px';\r\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\r\n if (fontData.fClass) {\r\n this.innerElem.className = fontData.fClass;\r\n } else {\r\n innerElemStyle.fontFamily = fontData.fFamily;\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n innerElemStyle.fontStyle = fStyle;\r\n innerElemStyle.fontWeight = fWeight;\r\n }\r\n }\r\n var i;\r\n var len;\r\n\r\n var letters = documentData.l;\r\n len = letters.length;\r\n var tSpan;\r\n var tParent;\r\n var tCont;\r\n var matrixHelper = this.mHelper;\r\n var shapes;\r\n var shapeStr = '';\r\n var cnt = 0;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.globalData.fontManager.chars) {\r\n if (!this.textPaths[cnt]) {\r\n tSpan = createNS('path');\r\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\r\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n } else {\r\n tSpan = this.textPaths[cnt];\r\n }\r\n if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tCont = tParent.children[0];\r\n } else {\r\n tParent = createTag('div');\r\n tParent.style.lineHeight = 0;\r\n tCont = createNS('svg');\r\n tCont.appendChild(tSpan);\r\n styleDiv(tParent);\r\n }\r\n }\r\n } else if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tSpan = this.textPaths[cnt];\r\n } else {\r\n tParent = createTag('span');\r\n styleDiv(tParent);\r\n tSpan = createTag('span');\r\n styleDiv(tSpan);\r\n tParent.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\r\n }\r\n // tSpan.setAttribute('visibility', 'hidden');\r\n if (this.globalData.fontManager.chars) {\r\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n var shapeData;\r\n if (charData) {\r\n shapeData = charData.data;\r\n } else {\r\n shapeData = null;\r\n }\r\n matrixHelper.reset();\r\n if (shapeData && shapeData.shapes) {\r\n shapes = shapeData.shapes[0].it;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n shapeStr = this.createPathShape(matrixHelper, shapes);\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent);\r\n if (shapeData && shapeData.shapes) {\r\n // document.body.appendChild is needed to get exact measure of shape\r\n document.body.appendChild(tCont);\r\n var boundingBox = tCont.getBBox();\r\n tCont.setAttribute('width', boundingBox.width + 2);\r\n tCont.setAttribute('height', boundingBox.height + 2);\r\n tCont.setAttribute('viewBox', (boundingBox.x - 1) + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\r\n var tContStyle = tCont.style;\r\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\r\n tContStyle.transform = tContTranslation;\r\n tContStyle.webkitTransform = tContTranslation;\r\n\r\n letters[i].yOffset = boundingBox.y - 1;\r\n } else {\r\n tCont.setAttribute('width', 1);\r\n tCont.setAttribute('height', 1);\r\n }\r\n tParent.appendChild(tCont);\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent);\r\n //\r\n var tStyle = tSpan.style;\r\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\r\n tStyle.transform = tSpanTranslation;\r\n tStyle.webkitTransform = tSpanTranslation;\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n }\r\n //\r\n if (!this.isMasked) {\r\n this.textSpans[cnt] = tParent;\r\n } else {\r\n this.textSpans[cnt] = tSpan;\r\n }\r\n this.textSpans[cnt].style.display = 'block';\r\n this.textPaths[cnt] = tSpan;\r\n cnt += 1;\r\n }\r\n while (cnt < this.textSpans.length) {\r\n this.textSpans[cnt].style.display = 'none';\r\n cnt += 1;\r\n }\r\n};\r\n\r\nHTextElement.prototype.renderInnerContent = function () {\r\n var svgStyle;\r\n if (this.data.singleShape) {\r\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\r\n return;\r\n } if (this.isMasked && this.finalTransform._matMdf) {\r\n // Todo Benchmark if using this is better than getBBox\r\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\r\n svgStyle = this.svgElement.style;\r\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\r\n svgStyle.transform = translation;\r\n svgStyle.webkitTransform = translation;\r\n }\r\n }\r\n\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\r\n return;\r\n }\r\n var i;\r\n var len;\r\n var count = 0;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n\r\n var letters = this.textProperty.currentData.l;\r\n\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n var textPath;\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n count += 1;\r\n } else {\r\n textSpan = this.textSpans[i];\r\n textPath = this.textPaths[i];\r\n renderedLetter = renderedLetters[count];\r\n count += 1;\r\n if (renderedLetter._mdf.m) {\r\n if (!this.isMasked) {\r\n textSpan.style.webkitTransform = renderedLetter.m;\r\n textSpan.style.transform = renderedLetter.m;\r\n } else {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n }\r\n /// /textSpan.setAttribute('opacity',renderedLetter.o);\r\n textSpan.style.opacity = renderedLetter.o;\r\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\r\n textPath.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\r\n textPath.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\r\n textPath.setAttribute('fill', renderedLetter.fc);\r\n textPath.style.color = renderedLetter.fc;\r\n }\r\n }\r\n }\r\n\r\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var boundingBox = this.innerElem.getBBox();\r\n\r\n if (this.currentBBox.w !== boundingBox.width) {\r\n this.currentBBox.w = boundingBox.width;\r\n this.svgElement.setAttribute('width', boundingBox.width);\r\n }\r\n if (this.currentBBox.h !== boundingBox.height) {\r\n this.currentBBox.h = boundingBox.height;\r\n this.svgElement.setAttribute('height', boundingBox.height);\r\n }\r\n\r\n var margin = 1;\r\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)) {\r\n this.currentBBox.w = boundingBox.width + margin * 2;\r\n this.currentBBox.h = boundingBox.height + margin * 2;\r\n this.currentBBox.x = boundingBox.x - margin;\r\n this.currentBBox.y = boundingBox.y - margin;\r\n\r\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n svgStyle = this.svgElement.style;\r\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n svgStyle.transform = svgTransform;\r\n svgStyle.webkitTransform = svgTransform;\r\n }\r\n }\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement,\r\nFrameElement, RenderableElement, createNS */\r\n\r\nfunction HImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\r\n\r\nHImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n var img = new Image();\r\n\r\n if (this.data.hasMask) {\r\n this.imageElem = createNS('image');\r\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\r\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\r\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n this.layerElement.appendChild(this.imageElem);\r\n this.baseElement.setAttribute('width', this.assetData.w);\r\n this.baseElement.setAttribute('height', this.assetData.h);\r\n } else {\r\n this.layerElement.appendChild(img);\r\n }\r\n img.crossOrigin = 'anonymous';\r\n img.src = assetPath;\r\n if (this.data.ln) {\r\n this.baseElement.setAttribute('id', this.data.ln);\r\n }\r\n};\r\n\r\n/* global PropertyFactory, degToRads, Matrix, extendPrototype, BaseElement, FrameElement, HierarchyElement */\r\n\r\nfunction HCameraElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initHierarchy();\r\n var getProp = PropertyFactory.getProp;\r\n this.pe = getProp(this, data.pe, 0, 0, this);\r\n if (data.ks.p.s) {\r\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\r\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\r\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\r\n } else {\r\n this.p = getProp(this, data.ks.p, 1, 0, this);\r\n }\r\n if (data.ks.a) {\r\n this.a = getProp(this, data.ks.a, 1, 0, this);\r\n }\r\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\r\n var i;\r\n var len = data.ks.or.k.length;\r\n for (i = 0; i < len; i += 1) {\r\n data.ks.or.k[i].to = null;\r\n data.ks.or.k[i].ti = null;\r\n }\r\n }\r\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\r\n this.or.sh = true;\r\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\r\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\r\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\r\n this.mat = new Matrix();\r\n this._prevMat = new Matrix();\r\n this._isFirstFrame = true;\r\n\r\n // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\r\n this.finalTransform = {\r\n mProp: this,\r\n };\r\n}\r\nextendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\r\n\r\nHCameraElement.prototype.setup = function () {\r\n var i;\r\n var len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n for (i = 0; i < len; i += 1) {\r\n // [perspectiveElem,container]\r\n comp = this.comp.threeDElements[i];\r\n if (comp.type === '3d') {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n containerStyle = comp.container.style;\r\n var perspective = this.pe.v + 'px';\r\n var origin = '0px 0px 0px';\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n perspectiveStyle.perspective = perspective;\r\n perspectiveStyle.webkitPerspective = perspective;\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n perspectiveStyle.transform = matrix;\r\n perspectiveStyle.webkitTransform = matrix;\r\n }\r\n }\r\n};\r\n\r\nHCameraElement.prototype.createElements = function () {\r\n};\r\n\r\nHCameraElement.prototype.hide = function () {\r\n};\r\n\r\nHCameraElement.prototype.renderFrame = function () {\r\n var _mdf = this._isFirstFrame;\r\n var i;\r\n var len;\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length;\r\n for (i = 0; i < len; i += 1) {\r\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\r\n }\r\n }\r\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)) {\r\n this.mat.reset();\r\n\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length - 1;\r\n for (i = len; i >= 0; i -= 1) {\r\n var mTransf = this.hierarchy[i].finalTransform.mProp;\r\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\r\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\r\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\r\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\r\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\r\n }\r\n }\r\n if (this.p) {\r\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\r\n } else {\r\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\r\n }\r\n if (this.a) {\r\n var diffVector;\r\n if (this.p) {\r\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]];\r\n } else {\r\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\r\n }\r\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2));\r\n // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\r\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\r\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\r\n var mRotationX = (Math.atan2(lookDir[1], lookLengthOnXZ));\r\n var mRotationY = (Math.atan2(lookDir[0], -lookDir[2]));\r\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\r\n }\r\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\r\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\r\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\r\n this.mat.translate(0, 0, this.pe.v);\r\n\r\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\r\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\r\n len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n for (i = 0; i < len; i += 1) {\r\n comp = this.comp.threeDElements[i];\r\n if (comp.type === '3d') {\r\n if (hasMatrixChanged) {\r\n var matValue = this.mat.toCSS();\r\n containerStyle = comp.container.style;\r\n containerStyle.transform = matValue;\r\n containerStyle.webkitTransform = matValue;\r\n }\r\n if (this.pe._mdf) {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n perspectiveStyle.perspective = this.pe.v + 'px';\r\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\r\n }\r\n }\r\n }\r\n this.mat.clone(this._prevMat);\r\n }\r\n }\r\n this._isFirstFrame = false;\r\n};\r\n\r\nHCameraElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n};\r\n\r\nHCameraElement.prototype.destroy = function () {\r\n};\r\nHCameraElement.prototype.getBaseElement = function () { return null; };\r\n\r\nfunction HEffects() {\r\n}\r\nHEffects.prototype.renderFrame = function () {};\r\n\r\n/* global createTag, AnimationItem */\r\n/* exported animationManager */\r\n\r\nvar animationManager = (function () {\r\n var moduleOb = {};\r\n var registeredAnimations = [];\r\n var initTime = 0;\r\n var len = 0;\r\n var playingAnimationsNum = 0;\r\n var _stopped = true;\r\n var _isFrozen = false;\r\n\r\n function removeElement(ev) {\r\n var i = 0;\r\n var animItem = ev.target;\r\n while (i < len) {\r\n if (registeredAnimations[i].animation === animItem) {\r\n registeredAnimations.splice(i, 1);\r\n i -= 1;\r\n len -= 1;\r\n if (!animItem.isPaused) {\r\n subtractPlayingCount();\r\n }\r\n }\r\n i += 1;\r\n }\r\n }\r\n\r\n function registerAnimation(element, animationData) {\r\n if (!element) {\r\n return null;\r\n }\r\n var i = 0;\r\n while (i < len) {\r\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\r\n return registeredAnimations[i].animation;\r\n }\r\n i += 1;\r\n }\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, element);\r\n animItem.setData(element, animationData);\r\n return animItem;\r\n }\r\n\r\n function getRegisteredAnimations() {\r\n var i;\r\n var lenAnims = registeredAnimations.length;\r\n var animations = [];\r\n for (i = 0; i < lenAnims; i += 1) {\r\n animations.push(registeredAnimations[i].animation);\r\n }\r\n return animations;\r\n }\r\n\r\n function addPlayingCount() {\r\n playingAnimationsNum += 1;\r\n activate();\r\n }\r\n\r\n function subtractPlayingCount() {\r\n playingAnimationsNum -= 1;\r\n }\r\n\r\n function setupAnimation(animItem, element) {\r\n animItem.addEventListener('destroy', removeElement);\r\n animItem.addEventListener('_active', addPlayingCount);\r\n animItem.addEventListener('_idle', subtractPlayingCount);\r\n registeredAnimations.push({ elem: element, animation: animItem });\r\n len += 1;\r\n }\r\n\r\n function loadAnimation(params) {\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, null);\r\n animItem.setParams(params);\r\n return animItem;\r\n }\r\n\r\n function setSpeed(val, animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setSpeed(val, animation);\r\n }\r\n }\r\n\r\n function setDirection(val, animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setDirection(val, animation);\r\n }\r\n }\r\n\r\n function play(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.play(animation);\r\n }\r\n }\r\n function resume(nowTime) {\r\n var elapsedTime = nowTime - initTime;\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.advanceTime(elapsedTime);\r\n }\r\n initTime = nowTime;\r\n if (playingAnimationsNum && !_isFrozen) {\r\n window.requestAnimationFrame(resume);\r\n } else {\r\n _stopped = true;\r\n }\r\n }\r\n\r\n function first(nowTime) {\r\n initTime = nowTime;\r\n window.requestAnimationFrame(resume);\r\n }\r\n\r\n function pause(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.pause(animation);\r\n }\r\n }\r\n\r\n function goToAndStop(value, isFrame, animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\r\n }\r\n }\r\n\r\n function stop(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.stop(animation);\r\n }\r\n }\r\n\r\n function togglePause(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.togglePause(animation);\r\n }\r\n }\r\n\r\n function destroy(animation) {\r\n var i;\r\n for (i = (len - 1); i >= 0; i -= 1) {\r\n registeredAnimations[i].animation.destroy(animation);\r\n }\r\n }\r\n\r\n function searchAnimations(animationData, standalone, renderer) {\r\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')),\r\n [].slice.call(document.getElementsByClassName('bodymovin')));\r\n var i;\r\n var lenAnims = animElements.length;\r\n for (i = 0; i < lenAnims; i += 1) {\r\n if (renderer) {\r\n animElements[i].setAttribute('data-bm-type', renderer);\r\n }\r\n registerAnimation(animElements[i], animationData);\r\n }\r\n if (standalone && lenAnims === 0) {\r\n if (!renderer) {\r\n renderer = 'svg';\r\n }\r\n var body = document.getElementsByTagName('body')[0];\r\n body.innerText = '';\r\n var div = createTag('div');\r\n div.style.width = '100%';\r\n div.style.height = '100%';\r\n div.setAttribute('data-bm-type', renderer);\r\n body.appendChild(div);\r\n registerAnimation(div, animationData);\r\n }\r\n }\r\n\r\n function resize() {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.resize();\r\n }\r\n }\r\n\r\n function activate() {\r\n if (!_isFrozen && playingAnimationsNum) {\r\n if (_stopped) {\r\n window.requestAnimationFrame(first);\r\n _stopped = false;\r\n }\r\n }\r\n }\r\n\r\n function freeze() {\r\n _isFrozen = true;\r\n }\r\n\r\n function unfreeze() {\r\n _isFrozen = false;\r\n activate();\r\n }\r\n\r\n function setVolume(val, animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setVolume(val, animation);\r\n }\r\n }\r\n\r\n function mute(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.mute(animation);\r\n }\r\n }\r\n\r\n function unmute(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.unmute(animation);\r\n }\r\n }\r\n\r\n moduleOb.registerAnimation = registerAnimation;\r\n moduleOb.loadAnimation = loadAnimation;\r\n moduleOb.setSpeed = setSpeed;\r\n moduleOb.setDirection = setDirection;\r\n moduleOb.play = play;\r\n moduleOb.pause = pause;\r\n moduleOb.stop = stop;\r\n moduleOb.togglePause = togglePause;\r\n moduleOb.searchAnimations = searchAnimations;\r\n moduleOb.resize = resize;\r\n // moduleOb.start = start;\r\n moduleOb.goToAndStop = goToAndStop;\r\n moduleOb.destroy = destroy;\r\n moduleOb.freeze = freeze;\r\n moduleOb.unfreeze = unfreeze;\r\n moduleOb.setVolume = setVolume;\r\n moduleOb.mute = mute;\r\n moduleOb.unmute = unmute;\r\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\r\n return moduleOb;\r\n}());\r\n\r\n/* global createElementID, subframeEnabled, ProjectInterface, ImagePreloader, audioControllerFactory, extendPrototype, BaseEvent,\r\nCanvasRenderer, SVGRenderer, HybridRenderer, dataManager, expressionsPlugin, BMEnterFrameEvent, BMCompleteLoopEvent,\r\nBMCompleteEvent, BMSegmentStartEvent, BMDestroyEvent, BMEnterFrameEvent, BMCompleteLoopEvent, BMCompleteEvent, BMSegmentStartEvent,\r\nBMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, markerParser */\r\n\r\nvar AnimationItem = function () {\r\n this._cbs = [];\r\n this.name = '';\r\n this.path = '';\r\n this.isLoaded = false;\r\n this.currentFrame = 0;\r\n this.currentRawFrame = 0;\r\n this.firstFrame = 0;\r\n this.totalFrames = 0;\r\n this.frameRate = 0;\r\n this.frameMult = 0;\r\n this.playSpeed = 1;\r\n this.playDirection = 1;\r\n this.playCount = 0;\r\n this.animationData = {};\r\n this.assets = [];\r\n this.isPaused = true;\r\n this.autoplay = false;\r\n this.loop = true;\r\n this.renderer = null;\r\n this.animationID = createElementID();\r\n this.assetsPath = '';\r\n this.timeCompleted = 0;\r\n this.segmentPos = 0;\r\n this.isSubframeEnabled = subframeEnabled;\r\n this.segments = [];\r\n this._idle = true;\r\n this._completedLoop = false;\r\n this.projectInterface = ProjectInterface();\r\n this.imagePreloader = new ImagePreloader();\r\n this.audioController = audioControllerFactory();\r\n this.markers = [];\r\n this.configAnimation = this.configAnimation.bind(this);\r\n this.onSetupError = this.onSetupError.bind(this);\r\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\r\n};\r\n\r\nextendPrototype([BaseEvent], AnimationItem);\r\n\r\nAnimationItem.prototype.setParams = function (params) {\r\n if (params.wrapper || params.container) {\r\n this.wrapper = params.wrapper || params.container;\r\n }\r\n var animType = 'svg';\r\n if (params.animType) {\r\n animType = params.animType;\r\n } else if (params.renderer) {\r\n animType = params.renderer;\r\n }\r\n switch (animType) {\r\n case 'canvas':\r\n this.renderer = new CanvasRenderer(this, params.rendererSettings);\r\n break;\r\n case 'svg':\r\n this.renderer = new SVGRenderer(this, params.rendererSettings);\r\n break;\r\n default:\r\n this.renderer = new HybridRenderer(this, params.rendererSettings);\r\n break;\r\n }\r\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\r\n this.renderer.setProjectInterface(this.projectInterface);\r\n this.animType = animType;\r\n if (params.loop === ''\r\n || params.loop === null\r\n || params.loop === undefined\r\n || params.loop === true) {\r\n this.loop = true;\r\n } else if (params.loop === false) {\r\n this.loop = false;\r\n } else {\r\n this.loop = parseInt(params.loop, 10);\r\n }\r\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\r\n this.name = params.name ? params.name : '';\r\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\r\n this.assetsPath = params.assetsPath;\r\n this.initialSegment = params.initialSegment;\r\n if (params.audioFactory) {\r\n this.audioController.setAudioFactory(params.audioFactory);\r\n }\r\n if (params.animationData) {\r\n this.setupAnimation(params.animationData);\r\n } else if (params.path) {\r\n if (params.path.lastIndexOf('\\\\') !== -1) {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\r\n } else {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\r\n }\r\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\r\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\r\n dataManager.loadAnimation(\r\n params.path,\r\n this.configAnimation,\r\n this.onSetupError\r\n );\r\n }\r\n};\r\n\r\nAnimationItem.prototype.onSetupError = function () {\r\n this.trigger('data_failed');\r\n};\r\n\r\nAnimationItem.prototype.setupAnimation = function (data) {\r\n dataManager.completeAnimation(\r\n data,\r\n this.configAnimation\r\n );\r\n};\r\n\r\nAnimationItem.prototype.setData = function (wrapper, animationData) {\r\n if (animationData) {\r\n if (typeof animationData !== 'object') {\r\n animationData = JSON.parse(animationData);\r\n }\r\n }\r\n var params = {\r\n wrapper: wrapper,\r\n animationData: animationData,\r\n };\r\n var wrapperAttributes = wrapper.attributes;\r\n\r\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-animation-path').value\r\n : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-path').value\r\n : wrapperAttributes.getNamedItem('bm-path')\r\n ? wrapperAttributes.getNamedItem('bm-path').value\r\n : '';\r\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-type').value\r\n : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-type').value\r\n : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('bm-type').value\r\n : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value\r\n : wrapperAttributes.getNamedItem('bm-renderer')\r\n ? wrapperAttributes.getNamedItem('bm-renderer').value\r\n : 'canvas';\r\n\r\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-loop').value\r\n : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-loop').value\r\n : wrapperAttributes.getNamedItem('bm-loop')\r\n ? wrapperAttributes.getNamedItem('bm-loop').value\r\n : '';\r\n if (loop === 'false') {\r\n params.loop = false;\r\n } else if (loop === 'true') {\r\n params.loop = true;\r\n } else if (loop !== '') {\r\n params.loop = parseInt(loop, 10);\r\n }\r\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value\r\n : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value\r\n : wrapperAttributes.getNamedItem('bm-autoplay')\r\n ? wrapperAttributes.getNamedItem('bm-autoplay').value\r\n : true;\r\n params.autoplay = autoplay !== 'false';\r\n\r\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-name').value\r\n : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-name').value\r\n : wrapperAttributes.getNamedItem('bm-name')\r\n ? wrapperAttributes.getNamedItem('bm-name').value\r\n : '';\r\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value\r\n : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value\r\n : wrapperAttributes.getNamedItem('bm-prerender')\r\n ? wrapperAttributes.getNamedItem('bm-prerender').value\r\n : '';\r\n\r\n if (prerender === 'false') {\r\n params.prerender = false;\r\n }\r\n this.setParams(params);\r\n};\r\n\r\nAnimationItem.prototype.includeLayers = function (data) {\r\n if (data.op > this.animationData.op) {\r\n this.animationData.op = data.op;\r\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\r\n }\r\n var layers = this.animationData.layers;\r\n var i;\r\n var len = layers.length;\r\n var newLayers = data.layers;\r\n var j;\r\n var jLen = newLayers.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n i = 0;\r\n while (i < len) {\r\n if (layers[i].id === newLayers[j].id) {\r\n layers[i] = newLayers[j];\r\n break;\r\n }\r\n i += 1;\r\n }\r\n }\r\n if (data.chars || data.fonts) {\r\n this.renderer.globalData.fontManager.addChars(data.chars);\r\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\r\n }\r\n if (data.assets) {\r\n len = data.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.animationData.assets.push(data.assets[i]);\r\n }\r\n }\r\n this.animationData.__complete = false;\r\n dataManager.completeAnimation(\r\n this.animationData,\r\n this.onSegmentComplete\r\n );\r\n};\r\n\r\nAnimationItem.prototype.onSegmentComplete = function (data) {\r\n this.animationData = data;\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n this.loadNextSegment();\r\n};\r\n\r\nAnimationItem.prototype.loadNextSegment = function () {\r\n var segments = this.animationData.segments;\r\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\r\n this.trigger('data_ready');\r\n this.timeCompleted = this.totalFrames;\r\n return;\r\n }\r\n var segment = segments.shift();\r\n this.timeCompleted = segment.time * this.frameRate;\r\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\r\n this.segmentPos += 1;\r\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\r\n this.trigger('data_failed');\r\n }.bind(this));\r\n};\r\n\r\nAnimationItem.prototype.loadSegments = function () {\r\n var segments = this.animationData.segments;\r\n if (!segments) {\r\n this.timeCompleted = this.totalFrames;\r\n }\r\n this.loadNextSegment();\r\n};\r\n\r\nAnimationItem.prototype.imagesLoaded = function () {\r\n this.trigger('loaded_images');\r\n this.checkLoaded();\r\n};\r\n\r\nAnimationItem.prototype.preloadImages = function () {\r\n this.imagePreloader.setAssetsPath(this.assetsPath);\r\n this.imagePreloader.setPath(this.path);\r\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\r\n};\r\n\r\nAnimationItem.prototype.configAnimation = function (animData) {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n try {\r\n this.animationData = animData;\r\n if (this.initialSegment) {\r\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\r\n this.firstFrame = Math.round(this.initialSegment[0]);\r\n } else {\r\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\r\n this.firstFrame = Math.round(this.animationData.ip);\r\n }\r\n this.renderer.configAnimation(animData);\r\n if (!animData.assets) {\r\n animData.assets = [];\r\n }\r\n\r\n this.assets = this.animationData.assets;\r\n this.frameRate = this.animationData.fr;\r\n this.frameMult = this.animationData.fr / 1000;\r\n this.renderer.searchExtraCompositions(animData.assets);\r\n this.markers = markerParser(animData.markers || []);\r\n this.trigger('config_ready');\r\n this.preloadImages();\r\n this.loadSegments();\r\n this.updaFrameModifier();\r\n this.waitForFontsLoaded();\r\n if (this.isPaused) {\r\n this.audioController.pause();\r\n }\r\n } catch (error) {\r\n this.triggerConfigError(error);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.waitForFontsLoaded = function () {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n if (this.renderer.globalData.fontManager.isLoaded) {\r\n this.checkLoaded();\r\n } else {\r\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.checkLoaded = function () {\r\n if (!this.isLoaded\r\n && this.renderer.globalData.fontManager.isLoaded\r\n && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas')\r\n && (this.imagePreloader.loadedFootages())\r\n ) {\r\n this.isLoaded = true;\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n this.renderer.initItems();\r\n setTimeout(function () {\r\n this.trigger('DOMLoaded');\r\n }.bind(this), 0);\r\n this.gotoFrame();\r\n if (this.autoplay) {\r\n this.play();\r\n }\r\n }\r\n};\r\n\r\nAnimationItem.prototype.resize = function () {\r\n this.renderer.updateContainerSize();\r\n};\r\n\r\nAnimationItem.prototype.setSubframe = function (flag) {\r\n this.isSubframeEnabled = !!flag;\r\n};\r\n\r\nAnimationItem.prototype.gotoFrame = function () {\r\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\r\n\r\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\r\n this.currentFrame = this.timeCompleted;\r\n }\r\n this.trigger('enterFrame');\r\n this.renderFrame();\r\n this.trigger('drawnFrame');\r\n};\r\n\r\nAnimationItem.prototype.renderFrame = function () {\r\n if (this.isLoaded === false || !this.renderer) {\r\n return;\r\n }\r\n try {\r\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\r\n } catch (error) {\r\n this.triggerRenderFrameError(error);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.play = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n if (this.isPaused === true) {\r\n this.isPaused = false;\r\n this.audioController.resume();\r\n if (this._idle) {\r\n this._idle = false;\r\n this.trigger('_active');\r\n }\r\n }\r\n};\r\n\r\nAnimationItem.prototype.pause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n if (this.isPaused === false) {\r\n this.isPaused = true;\r\n this._idle = true;\r\n this.trigger('_idle');\r\n this.audioController.pause();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.togglePause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n if (this.isPaused === true) {\r\n this.play();\r\n } else {\r\n this.pause();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.stop = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.pause();\r\n this.playCount = 0;\r\n this._completedLoop = false;\r\n this.setCurrentRawFrameValue(0);\r\n};\r\n\r\nAnimationItem.prototype.getMarkerData = function (markerName) {\r\n var marker;\r\n for (var i = 0; i < this.markers.length; i += 1) {\r\n marker = this.markers[i];\r\n if (marker.payload && marker.payload.name === markerName) {\r\n return marker;\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nAnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n var numValue = Number(value);\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n if (marker) {\r\n this.goToAndStop(marker.time, true);\r\n }\r\n } else if (isFrame) {\r\n this.setCurrentRawFrameValue(value);\r\n } else {\r\n this.setCurrentRawFrameValue(value * this.frameModifier);\r\n }\r\n this.pause();\r\n};\r\n\r\nAnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n var numValue = Number(value);\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n if (marker) {\r\n if (!marker.duration) {\r\n this.goToAndStop(marker.time, true);\r\n } else {\r\n this.playSegments([marker.time, marker.time + marker.duration], true);\r\n }\r\n }\r\n } else {\r\n this.goToAndStop(numValue, isFrame, name);\r\n }\r\n this.play();\r\n};\r\n\r\nAnimationItem.prototype.advanceTime = function (value) {\r\n if (this.isPaused === true || this.isLoaded === false) {\r\n return;\r\n }\r\n var nextValue = this.currentRawFrame + value * this.frameModifier;\r\n var _isComplete = false;\r\n // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\r\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.\r\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\r\n if (!this.loop || this.playCount === this.loop) {\r\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\r\n _isComplete = true;\r\n nextValue = this.totalFrames - 1;\r\n }\r\n } else if (nextValue >= this.totalFrames) {\r\n this.playCount += 1;\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\r\n this._completedLoop = true;\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n } else if (nextValue < 0) {\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) { // eslint-disable-line no-plusplus\r\n this.setCurrentRawFrameValue(this.totalFrames + (nextValue % this.totalFrames));\r\n if (!this._completedLoop) {\r\n this._completedLoop = true;\r\n } else {\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n _isComplete = true;\r\n nextValue = 0;\r\n }\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n if (_isComplete) {\r\n this.setCurrentRawFrameValue(nextValue);\r\n this.pause();\r\n this.trigger('complete');\r\n }\r\n};\r\n\r\nAnimationItem.prototype.adjustSegment = function (arr, offset) {\r\n this.playCount = 0;\r\n if (arr[1] < arr[0]) {\r\n if (this.frameModifier > 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(-1);\r\n }\r\n }\r\n this.totalFrames = arr[0] - arr[1];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[1];\r\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\r\n } else if (arr[1] > arr[0]) {\r\n if (this.frameModifier < 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(1);\r\n }\r\n }\r\n this.totalFrames = arr[1] - arr[0];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[0];\r\n this.setCurrentRawFrameValue(0.001 + offset);\r\n }\r\n this.trigger('segmentStart');\r\n};\r\nAnimationItem.prototype.setSegment = function (init, end) {\r\n var pendingFrame = -1;\r\n if (this.isPaused) {\r\n if (this.currentRawFrame + this.firstFrame < init) {\r\n pendingFrame = init;\r\n } else if (this.currentRawFrame + this.firstFrame > end) {\r\n pendingFrame = end - init;\r\n }\r\n }\r\n\r\n this.firstFrame = init;\r\n this.totalFrames = end - init;\r\n this.timeCompleted = this.totalFrames;\r\n if (pendingFrame !== -1) {\r\n this.goToAndStop(pendingFrame, true);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.playSegments = function (arr, forceFlag) {\r\n if (forceFlag) {\r\n this.segments.length = 0;\r\n }\r\n if (typeof arr[0] === 'object') {\r\n var i;\r\n var len = arr.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.segments.push(arr[i]);\r\n }\r\n } else {\r\n this.segments.push(arr);\r\n }\r\n if (this.segments.length && forceFlag) {\r\n this.adjustSegment(this.segments.shift(), 0);\r\n }\r\n if (this.isPaused) {\r\n this.play();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.resetSegments = function (forceFlag) {\r\n this.segments.length = 0;\r\n this.segments.push([this.animationData.ip, this.animationData.op]);\r\n if (forceFlag) {\r\n this.checkSegments(0);\r\n }\r\n};\r\nAnimationItem.prototype.checkSegments = function (offset) {\r\n if (this.segments.length) {\r\n this.adjustSegment(this.segments.shift(), offset);\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nAnimationItem.prototype.destroy = function (name) {\r\n if ((name && this.name !== name) || !this.renderer) {\r\n return;\r\n }\r\n this.renderer.destroy();\r\n this.imagePreloader.destroy();\r\n this.trigger('destroy');\r\n this._cbs = null;\r\n this.onEnterFrame = null;\r\n this.onLoopComplete = null;\r\n this.onComplete = null;\r\n this.onSegmentStart = null;\r\n this.onDestroy = null;\r\n this.renderer = null;\r\n this.renderer = null;\r\n this.imagePreloader = null;\r\n this.projectInterface = null;\r\n};\r\n\r\nAnimationItem.prototype.setCurrentRawFrameValue = function (value) {\r\n this.currentRawFrame = value;\r\n this.gotoFrame();\r\n};\r\n\r\nAnimationItem.prototype.setSpeed = function (val) {\r\n this.playSpeed = val;\r\n this.updaFrameModifier();\r\n};\r\n\r\nAnimationItem.prototype.setDirection = function (val) {\r\n this.playDirection = val < 0 ? -1 : 1;\r\n this.updaFrameModifier();\r\n};\r\n\r\nAnimationItem.prototype.setVolume = function (val, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.audioController.setVolume(val);\r\n};\r\n\r\nAnimationItem.prototype.getVolume = function () {\r\n return this.audioController.getVolume();\r\n};\r\n\r\nAnimationItem.prototype.mute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.audioController.mute();\r\n};\r\n\r\nAnimationItem.prototype.unmute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.audioController.unmute();\r\n};\r\n\r\nAnimationItem.prototype.updaFrameModifier = function () {\r\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\r\n this.audioController.setRate(this.playSpeed * this.playDirection);\r\n};\r\n\r\nAnimationItem.prototype.getPath = function () {\r\n return this.path;\r\n};\r\n\r\nAnimationItem.prototype.getAssetsPath = function (assetData) {\r\n var path = '';\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (this.assetsPath) {\r\n var imagePath = assetData.p;\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n path = this.assetsPath + imagePath;\r\n } else {\r\n path = this.path;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n return path;\r\n};\r\n\r\nAnimationItem.prototype.getAssetData = function (id) {\r\n var i = 0;\r\n var len = this.assets.length;\r\n while (i < len) {\r\n if (id === this.assets[i].id) {\r\n return this.assets[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nAnimationItem.prototype.hide = function () {\r\n this.renderer.hide();\r\n};\r\n\r\nAnimationItem.prototype.show = function () {\r\n this.renderer.show();\r\n};\r\n\r\nAnimationItem.prototype.getDuration = function (isFrame) {\r\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\r\n};\r\n\r\nAnimationItem.prototype.trigger = function (name) {\r\n if (this._cbs && this._cbs[name]) {\r\n switch (name) {\r\n case 'enterFrame':\r\n case 'drawnFrame':\r\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\r\n break;\r\n case 'loopComplete':\r\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n break;\r\n case 'complete':\r\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\r\n break;\r\n case 'segmentStart':\r\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n break;\r\n case 'destroy':\r\n this.triggerEvent(name, new BMDestroyEvent(name, this));\r\n break;\r\n default:\r\n this.triggerEvent(name);\r\n }\r\n }\r\n if (name === 'enterFrame' && this.onEnterFrame) {\r\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\r\n }\r\n if (name === 'loopComplete' && this.onLoopComplete) {\r\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n }\r\n if (name === 'complete' && this.onComplete) {\r\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\r\n }\r\n if (name === 'segmentStart' && this.onSegmentStart) {\r\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n }\r\n if (name === 'destroy' && this.onDestroy) {\r\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\r\n }\r\n};\r\n\r\nAnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\r\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.triggerConfigError = function (nativeError) {\r\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n};\r\n\r\n/* global CompExpressionInterface, expressionsPlugin: writable */\r\n/* exported expressionsPlugin */\r\n\r\nvar Expressions = (function () {\r\n var ob = {};\r\n ob.initExpressions = initExpressions;\r\n\r\n function initExpressions(animation) {\r\n var stackCount = 0;\r\n var registers = [];\r\n\r\n function pushExpression() {\r\n stackCount += 1;\r\n }\r\n\r\n function popExpression() {\r\n stackCount -= 1;\r\n if (stackCount === 0) {\r\n releaseInstances();\r\n }\r\n }\r\n\r\n function registerExpressionProperty(expression) {\r\n if (registers.indexOf(expression) === -1) {\r\n registers.push(expression);\r\n }\r\n }\r\n\r\n function releaseInstances() {\r\n var i;\r\n var len = registers.length;\r\n for (i = 0; i < len; i += 1) {\r\n registers[i].release();\r\n }\r\n registers.length = 0;\r\n }\r\n\r\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\r\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\r\n animation.renderer.globalData.pushExpression = pushExpression;\r\n animation.renderer.globalData.popExpression = popExpression;\r\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\r\n }\r\n return ob;\r\n}());\r\n\r\nexpressionsPlugin = Expressions;\r\n\r\n/* eslint-disable camelcase, no-unused-vars */\r\n/* global BMMath, BezierFactory, createTypedArray, degToRads, shapePool */\r\n\r\nvar ExpressionManager = (function () {\r\n 'use strict';\r\n\r\n var ob = {};\r\n var Math = BMMath;\r\n var window = null;\r\n var document = null;\r\n var XMLHttpRequest = null;\r\n var fetch = null;\r\n var frames = null;\r\n\r\n function $bm_isInstanceOfArray(arr) {\r\n return arr.constructor === Array || arr.constructor === Float32Array;\r\n }\r\n\r\n function isNumerable(tOfV, v) {\r\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\r\n }\r\n\r\n function $bm_neg(a) {\r\n var tOfA = typeof a;\r\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\r\n return -a;\r\n }\r\n if ($bm_isInstanceOfArray(a)) {\r\n var i;\r\n var lenA = a.length;\r\n var retArr = [];\r\n for (i = 0; i < lenA; i += 1) {\r\n retArr[i] = -a[i];\r\n }\r\n return retArr;\r\n }\r\n if (a.propType) {\r\n return a.v;\r\n }\r\n return -a;\r\n }\r\n\r\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\r\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\r\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\r\n\r\n function sum(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n if (tOfA === 'string' || tOfB === 'string') {\r\n return a + b;\r\n }\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a + b;\r\n }\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] += b;\r\n return a;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a + b[0];\r\n return b;\r\n }\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] + b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n i += 1;\r\n }\r\n return retArr;\r\n }\r\n return 0;\r\n }\r\n var add = sum;\r\n\r\n function sub(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n if (tOfA === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n if (tOfB === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n return a - b;\r\n }\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] -= b;\r\n return a;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a - b[0];\r\n return b;\r\n }\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] - b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n i += 1;\r\n }\r\n return retArr;\r\n }\r\n return 0;\r\n }\r\n\r\n function mul(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n var arr;\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a * b;\r\n }\r\n\r\n var i;\r\n var len;\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] * b;\r\n }\r\n return arr;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a * b[i];\r\n }\r\n return arr;\r\n }\r\n return 0;\r\n }\r\n\r\n function div(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n var arr;\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a / b;\r\n }\r\n var i;\r\n var len;\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] / b;\r\n }\r\n return arr;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a / b[i];\r\n }\r\n return arr;\r\n }\r\n return 0;\r\n }\r\n function mod(a, b) {\r\n if (typeof a === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n if (typeof b === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n return a % b;\r\n }\r\n var $bm_sum = sum;\r\n var $bm_sub = sub;\r\n var $bm_mul = mul;\r\n var $bm_div = div;\r\n var $bm_mod = mod;\r\n\r\n function clamp(num, min, max) {\r\n if (min > max) {\r\n var mm = max;\r\n max = min;\r\n min = mm;\r\n }\r\n return Math.min(Math.max(num, min), max);\r\n }\r\n\r\n function radiansToDegrees(val) {\r\n return val / degToRads;\r\n }\r\n var radians_to_degrees = radiansToDegrees;\r\n\r\n function degreesToRadians(val) {\r\n return val * degToRads;\r\n }\r\n var degrees_to_radians = radiansToDegrees;\r\n\r\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\r\n\r\n function length(arr1, arr2) {\r\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\r\n arr2 = arr2 || 0;\r\n return Math.abs(arr1 - arr2);\r\n }\r\n if (!arr2) {\r\n arr2 = helperLengthArray;\r\n }\r\n var i;\r\n var len = Math.min(arr1.length, arr2.length);\r\n var addedLength = 0;\r\n for (i = 0; i < len; i += 1) {\r\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\r\n }\r\n return Math.sqrt(addedLength);\r\n }\r\n\r\n function normalize(vec) {\r\n return div(vec, length(vec));\r\n }\r\n\r\n function rgbToHsl(val) {\r\n var r = val[0]; var g = val[1]; var b = val[2];\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var h;\r\n var s;\r\n var l = (max + min) / 2;\r\n\r\n if (max === min) {\r\n h = 0; // achromatic\r\n s = 0; // achromatic\r\n } else {\r\n var d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n switch (max) {\r\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\r\n case g: h = (b - r) / d + 2; break;\r\n case b: h = (r - g) / d + 4; break;\r\n default: break;\r\n }\r\n h /= 6;\r\n }\r\n\r\n return [h, s, l, val[3]];\r\n }\r\n\r\n function hue2rgb(p, q, t) {\r\n if (t < 0) t += 1;\r\n if (t > 1) t -= 1;\r\n if (t < 1 / 6) return p + (q - p) * 6 * t;\r\n if (t < 1 / 2) return q;\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\r\n return p;\r\n }\r\n\r\n function hslToRgb(val) {\r\n var h = val[0];\r\n var s = val[1];\r\n var l = val[2];\r\n\r\n var r;\r\n var g;\r\n var b;\r\n\r\n if (s === 0) {\r\n r = l; // achromatic\r\n b = l; // achromatic\r\n g = l; // achromatic\r\n } else {\r\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hue2rgb(p, q, h + 1 / 3);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1 / 3);\r\n }\r\n\r\n return [r, g, b, val[3]];\r\n }\r\n\r\n function linear(t, tMin, tMax, value1, value2) {\r\n if (value1 === undefined || value2 === undefined) {\r\n value1 = tMin;\r\n value2 = tMax;\r\n tMin = 0;\r\n tMax = 1;\r\n }\r\n if (tMax < tMin) {\r\n var _tMin = tMax;\r\n tMax = tMin;\r\n tMin = _tMin;\r\n }\r\n if (t <= tMin) {\r\n return value1;\r\n } if (t >= tMax) {\r\n return value2;\r\n }\r\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\r\n if (!value1.length) {\r\n return value1 + (value2 - value1) * perc;\r\n }\r\n var i;\r\n var len = value1.length;\r\n var arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\r\n }\r\n return arr;\r\n }\r\n function random(min, max) {\r\n if (max === undefined) {\r\n if (min === undefined) {\r\n min = 0;\r\n max = 1;\r\n } else {\r\n max = min;\r\n min = undefined;\r\n }\r\n }\r\n if (max.length) {\r\n var i;\r\n var len = max.length;\r\n if (!min) {\r\n min = createTypedArray('float32', len);\r\n }\r\n var arr = createTypedArray('float32', len);\r\n var rnd = BMMath.random();\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = min[i] + rnd * (max[i] - min[i]);\r\n }\r\n return arr;\r\n }\r\n if (min === undefined) {\r\n min = 0;\r\n }\r\n var rndm = BMMath.random();\r\n return min + rndm * (max - min);\r\n }\r\n\r\n function createPath(points, inTangents, outTangents, closed) {\r\n var i;\r\n var len = points.length;\r\n var path = shapePool.newElement();\r\n path.setPathData(!!closed, len);\r\n var arrPlaceholder = [0, 0];\r\n var inVertexPoint;\r\n var outVertexPoint;\r\n for (i = 0; i < len; i += 1) {\r\n inVertexPoint = (inTangents && inTangents[i]) ? inTangents[i] : arrPlaceholder;\r\n outVertexPoint = (outTangents && outTangents[i]) ? outTangents[i] : arrPlaceholder;\r\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);\r\n }\r\n return path;\r\n }\r\n\r\n function initiateExpression(elem, data, property) {\r\n var val = data.x;\r\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\r\n var _needsRandom = val.indexOf('random') !== -1;\r\n var elemType = elem.data.ty;\r\n var transform;\r\n var $bm_transform;\r\n var content;\r\n var effect;\r\n var thisProperty = property;\r\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\r\n Object.defineProperty(thisProperty, 'value', {\r\n get: function () {\r\n return thisProperty.v;\r\n },\r\n });\r\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\r\n elem.comp.displayStartTime = 0;\r\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n var width = elem.data.sw ? elem.data.sw : 0;\r\n var height = elem.data.sh ? elem.data.sh : 0;\r\n var name = elem.data.nm;\r\n var loopIn;\r\n var loop_in;\r\n var loopOut;\r\n var loop_out;\r\n var smooth;\r\n var toWorld;\r\n var fromWorld;\r\n var fromComp;\r\n var toComp;\r\n var fromCompToSurface;\r\n var position;\r\n var rotation;\r\n var anchorPoint;\r\n var scale;\r\n var thisLayer;\r\n var thisComp;\r\n var mask;\r\n var valueAtTime;\r\n var velocityAtTime;\r\n\r\n var scoped_bm_rt;\r\n // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\r\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\r\n var numKeys = property.kf ? data.k.length : 0;\r\n\r\n var active = !this.data || this.data.hd !== true;\r\n\r\n var wiggle = function wiggle(freq, amp) {\r\n var iWiggle;\r\n var j;\r\n var lenWiggle = this.pv.length ? this.pv.length : 1;\r\n var addedAmps = createTypedArray('float32', lenWiggle);\r\n freq = 5;\r\n var iterations = Math.floor(time * freq);\r\n iWiggle = 0;\r\n j = 0;\r\n while (iWiggle < iterations) {\r\n // var rnd = BMMath.random();\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n addedAmps[j] += -amp + amp * 2 * BMMath.random();\r\n // addedAmps[j] += -amp + amp*2*rnd;\r\n }\r\n iWiggle += 1;\r\n }\r\n // var rnd2 = BMMath.random();\r\n var periods = time * freq;\r\n var perc = periods - Math.floor(periods);\r\n var arr = createTypedArray('float32', lenWiggle);\r\n if (lenWiggle > 1) {\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc;\r\n // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\r\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\r\n }\r\n return arr;\r\n }\r\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\r\n }.bind(this);\r\n\r\n if (thisProperty.loopIn) {\r\n loopIn = thisProperty.loopIn.bind(thisProperty);\r\n loop_in = loopIn;\r\n }\r\n\r\n if (thisProperty.loopOut) {\r\n loopOut = thisProperty.loopOut.bind(thisProperty);\r\n loop_out = loopOut;\r\n }\r\n\r\n if (thisProperty.smooth) {\r\n smooth = thisProperty.smooth.bind(thisProperty);\r\n }\r\n\r\n function loopInDuration(type, duration) {\r\n return loopIn(type, duration, true);\r\n }\r\n\r\n function loopOutDuration(type, duration) {\r\n return loopOut(type, duration, true);\r\n }\r\n\r\n if (this.getValueAtTime) {\r\n valueAtTime = this.getValueAtTime.bind(this);\r\n }\r\n\r\n if (this.getVelocityAtTime) {\r\n velocityAtTime = this.getVelocityAtTime.bind(this);\r\n }\r\n\r\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\r\n\r\n function lookAt(elem1, elem2) {\r\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\r\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\r\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\r\n return [yaw, pitch, 0];\r\n }\r\n\r\n function easeOut(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function easeIn(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function ease(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function applyEase(fn, t, tMin, tMax, val1, val2) {\r\n if (val1 === undefined) {\r\n val1 = tMin;\r\n val2 = tMax;\r\n } else {\r\n t = (t - tMin) / (tMax - tMin);\r\n }\r\n if (t > 1) {\r\n t = 1;\r\n } else if (t < 0) {\r\n t = 0;\r\n }\r\n var mult = fn(t);\r\n if ($bm_isInstanceOfArray(val1)) {\r\n var iKey;\r\n var lenKey = val1.length;\r\n var arr = createTypedArray('float32', lenKey);\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\r\n }\r\n return arr;\r\n }\r\n return (val2 - val1) * mult + val1;\r\n }\r\n\r\n function nearestKey(time) {\r\n var iKey;\r\n var lenKey = data.k.length;\r\n var index;\r\n var keyTime;\r\n if (!data.k.length || typeof (data.k[0]) === 'number') {\r\n index = 0;\r\n keyTime = 0;\r\n } else {\r\n index = -1;\r\n time *= elem.comp.globalData.frameRate;\r\n if (time < data.k[0].t) {\r\n index = 1;\r\n keyTime = data.k[0].t;\r\n } else {\r\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\r\n if (time === data.k[iKey].t) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n break;\r\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\r\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\r\n index = iKey + 2;\r\n keyTime = data.k[iKey + 1].t;\r\n } else {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n break;\r\n }\r\n }\r\n if (index === -1) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n }\r\n }\r\n var obKey = {};\r\n obKey.index = index;\r\n obKey.time = keyTime / elem.comp.globalData.frameRate;\r\n return obKey;\r\n }\r\n\r\n function key(ind) {\r\n var obKey;\r\n var iKey;\r\n var lenKey;\r\n if (!data.k.length || typeof (data.k[0]) === 'number') {\r\n throw new Error('The property has no keyframe at index ' + ind);\r\n }\r\n ind -= 1;\r\n obKey = {\r\n time: data.k[ind].t / elem.comp.globalData.frameRate,\r\n value: [],\r\n };\r\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\r\n\r\n lenKey = arr.length;\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n obKey[iKey] = arr[iKey];\r\n obKey.value[iKey] = arr[iKey];\r\n }\r\n return obKey;\r\n }\r\n\r\n function framesToTime(fr, fps) {\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n return fr / fps;\r\n }\r\n\r\n function timeToFrames(t, fps) {\r\n if (!t && t !== 0) {\r\n t = time;\r\n }\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n return t * fps;\r\n }\r\n\r\n function seedRandom(seed) {\r\n BMMath.seedrandom(randSeed + seed);\r\n }\r\n\r\n function sourceRectAtTime() {\r\n return elem.sourceRectAtTime();\r\n }\r\n\r\n function substring(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substring(init);\r\n }\r\n return value.substring(init, end);\r\n }\r\n return '';\r\n }\r\n\r\n function substr(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substr(init);\r\n }\r\n return value.substr(init, end);\r\n }\r\n return '';\r\n }\r\n\r\n function posterizeTime(framesPerSecond) {\r\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\r\n value = valueAtTime(time);\r\n }\r\n\r\n var time;\r\n var velocity;\r\n var value;\r\n var text;\r\n var textIndex;\r\n var textTotal;\r\n var selectorValue;\r\n var index = elem.data.ind;\r\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n var parent;\r\n var randSeed = Math.floor(Math.random() * 1000000);\r\n var globalData = elem.globalData;\r\n function executeExpression(_value) {\r\n // globalData.pushExpression();\r\n value = _value;\r\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\r\n return value;\r\n }\r\n if (this.propType === 'textSelector') {\r\n textIndex = this.textIndex;\r\n textTotal = this.textTotal;\r\n selectorValue = this.selectorValue;\r\n }\r\n if (!thisLayer) {\r\n text = elem.layerInterface.text;\r\n thisLayer = elem.layerInterface;\r\n thisComp = elem.comp.compInterface;\r\n toWorld = thisLayer.toWorld.bind(thisLayer);\r\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\r\n fromComp = thisLayer.fromComp.bind(thisLayer);\r\n toComp = thisLayer.toComp.bind(thisLayer);\r\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\r\n fromCompToSurface = fromComp;\r\n }\r\n if (!transform) {\r\n transform = elem.layerInterface('ADBE Transform Group');\r\n $bm_transform = transform;\r\n if (transform) {\r\n anchorPoint = transform.anchorPoint;\r\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\r\n }\r\n }\r\n\r\n if (elemType === 4 && !content) {\r\n content = thisLayer('ADBE Root Vectors Group');\r\n }\r\n if (!effect) {\r\n effect = thisLayer(4);\r\n }\r\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n if (hasParent && !parent) {\r\n parent = elem.hierarchy[0].layerInterface;\r\n }\r\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n if (_needsRandom) {\r\n seedRandom(randSeed + time);\r\n }\r\n if (needsVelocity) {\r\n velocity = velocityAtTime(time);\r\n }\r\n expression_function();\r\n this.frameExpressionId = elem.globalData.frameId;\r\n\r\n // TODO: Check if it's possible to return on ShapeInterface the .v value\r\n if (scoped_bm_rt.propType === 'shape') {\r\n scoped_bm_rt = scoped_bm_rt.v;\r\n }\r\n // globalData.popExpression();\r\n return scoped_bm_rt;\r\n }\r\n return executeExpression;\r\n }\r\n\r\n ob.initiateExpression = initiateExpression;\r\n return ob;\r\n}());\r\n\r\n/* global ExpressionManager, createTypedArray */\r\n/* exported expressionHelpers */\r\n\r\nvar expressionHelpers = (function () {\r\n function searchExpressions(elem, data, prop) {\r\n if (data.x) {\r\n prop.k = true;\r\n prop.x = true;\r\n prop.initiateExpression = ExpressionManager.initiateExpression;\r\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\r\n }\r\n }\r\n\r\n function getValueAtTime(frameNum) {\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n if (frameNum !== this._cachingAtTime.lastFrame) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\r\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\r\n this._cachingAtTime.lastFrame = frameNum;\r\n }\r\n return this._cachingAtTime.value;\r\n }\r\n\r\n function getSpeedAtTime(frameNum) {\r\n var delta = -0.01;\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var speed = 0;\r\n if (v1.length) {\r\n var i;\r\n for (i = 0; i < v1.length; i += 1) {\r\n speed += Math.pow(v2[i] - v1[i], 2);\r\n }\r\n speed = Math.sqrt(speed) * 100;\r\n } else {\r\n speed = 0;\r\n }\r\n return speed;\r\n }\r\n\r\n function getVelocityAtTime(frameNum) {\r\n if (this.vel !== undefined) {\r\n return this.vel;\r\n }\r\n var delta = -0.001;\r\n // frameNum += this.elem.data.st;\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var velocity;\r\n if (v1.length) {\r\n velocity = createTypedArray('float32', v1.length);\r\n var i;\r\n for (i = 0; i < v1.length; i += 1) {\r\n // removing frameRate\r\n // if needed, don't add it here\r\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\r\n velocity[i] = (v2[i] - v1[i]) / delta;\r\n }\r\n } else {\r\n velocity = (v2 - v1) / delta;\r\n }\r\n return velocity;\r\n }\r\n\r\n function getStaticValueAtTime() {\r\n return this.pv;\r\n }\r\n\r\n function setGroupProperty(propertyGroup) {\r\n this.propertyGroup = propertyGroup;\r\n }\r\n\r\n return {\r\n searchExpressions: searchExpressions,\r\n getSpeedAtTime: getSpeedAtTime,\r\n getVelocityAtTime: getVelocityAtTime,\r\n getValueAtTime: getValueAtTime,\r\n getStaticValueAtTime: getStaticValueAtTime,\r\n setGroupProperty: setGroupProperty,\r\n };\r\n}());\r\n\r\n/* global createTypedArray, Matrix, TransformPropertyFactory, expressionHelpers, PropertyFactory, expressionHelpers,\r\ninitialDefaultFrame, shapePool, ShapePropertyFactory, bez, extendPrototype, ExpressionManager, createSizedArray */\r\n\r\n(function addPropertyDecorator() {\r\n function loopOut(type, duration, durationFlag) {\r\n if (!this.k || !this.keyframes) {\r\n return this.pv;\r\n }\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\r\n if (currentFrame <= lastKeyFrame) {\r\n return this.pv;\r\n }\r\n var cycleDuration;\r\n var firstKeyFrame;\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\r\n } else {\r\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\r\n }\r\n firstKeyFrame = lastKeyFrame - cycleDuration;\r\n }\r\n var i;\r\n var len;\r\n var ret;\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n if (iterations % 2 !== 0) {\r\n return this.getValueAtTime(((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\r\n }\r\n return ret;\r\n }\r\n return (endV - initV) * repeats + current;\r\n } else if (type === 'continue') {\r\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\r\n if (this.pv.length) {\r\n ret = new Array(lastValue.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\r\n }\r\n return ret;\r\n }\r\n return lastValue + (lastValue - nextLastValue) * (((currentFrame - lastKeyFrame)) / 0.001);\r\n }\r\n return this.getValueAtTime((((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n\r\n }\r\n\r\n function loopIn(type, duration, durationFlag) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var firstKeyFrame = keyframes[0].t;\r\n if (currentFrame >= firstKeyFrame) {\r\n return this.pv;\r\n }\r\n var cycleDuration;\r\n var lastKeyFrame;\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n lastKeyFrame = keyframes[duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\r\n } else {\r\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\r\n }\r\n lastKeyFrame = firstKeyFrame + cycleDuration;\r\n }\r\n var i;\r\n var len;\r\n var ret;\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\r\n if (iterations % 2 === 0) {\r\n return this.getValueAtTime((((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration) + firstKeyFrame) / this.comp.globalData.frameRate, 0);\r\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\r\n }\r\n return ret;\r\n }\r\n return current - (endV - initV) * repeats;\r\n } else if (type === 'continue') {\r\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\r\n if (this.pv.length) {\r\n ret = new Array(firstValue.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = firstValue[i] + ((firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame)) / 0.001;\r\n }\r\n return ret;\r\n }\r\n return firstValue + ((firstValue - nextFirstValue) * (firstKeyFrame - currentFrame)) / 0.001;\r\n }\r\n return this.getValueAtTime(((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame))) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n\r\n }\r\n\r\n function smooth(width, samples) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n width = (width || 0.4) * 0.5;\r\n samples = Math.floor(samples || 5);\r\n if (samples <= 1) {\r\n return this.pv;\r\n }\r\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n var initFrame = currentTime - width;\r\n var endFrame = currentTime + width;\r\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\r\n var i = 0;\r\n var j = 0;\r\n var value;\r\n if (this.pv.length) {\r\n value = createTypedArray('float32', this.pv.length);\r\n } else {\r\n value = 0;\r\n }\r\n var sampleValue;\r\n while (i < samples) {\r\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] += sampleValue[j];\r\n }\r\n } else {\r\n value += sampleValue;\r\n }\r\n i += 1;\r\n }\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] /= samples;\r\n }\r\n } else {\r\n value /= samples;\r\n }\r\n return value;\r\n }\r\n\r\n function getTransformValueAtTime(time) {\r\n if (!this._transformCachingAtTime) {\r\n this._transformCachingAtTime = {\r\n v: new Matrix(),\r\n };\r\n }\r\n /// /\r\n var matrix = this._transformCachingAtTime.v;\r\n matrix.cloneFromProps(this.pre.props);\r\n if (this.appliedTransformations < 1) {\r\n var anchor = this.a.getValueAtTime(time);\r\n matrix.translate(\r\n -anchor[0] * this.a.mult,\r\n -anchor[1] * this.a.mult,\r\n anchor[2] * this.a.mult\r\n );\r\n }\r\n if (this.appliedTransformations < 2) {\r\n var scale = this.s.getValueAtTime(time);\r\n matrix.scale(\r\n scale[0] * this.s.mult,\r\n scale[1] * this.s.mult,\r\n scale[2] * this.s.mult\r\n );\r\n }\r\n if (this.sk && this.appliedTransformations < 3) {\r\n var skew = this.sk.getValueAtTime(time);\r\n var skewAxis = this.sa.getValueAtTime(time);\r\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\r\n }\r\n if (this.r && this.appliedTransformations < 4) {\r\n var rotation = this.r.getValueAtTime(time);\r\n matrix.rotate(-rotation * this.r.mult);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n var rotationZ = this.rz.getValueAtTime(time);\r\n var rotationY = this.ry.getValueAtTime(time);\r\n var rotationX = this.rx.getValueAtTime(time);\r\n var orientation = this.or.getValueAtTime(time);\r\n matrix.rotateZ(-rotationZ * this.rz.mult)\r\n .rotateY(rotationY * this.ry.mult)\r\n .rotateX(rotationX * this.rx.mult)\r\n .rotateZ(-orientation[2] * this.or.mult)\r\n .rotateY(orientation[1] * this.or.mult)\r\n .rotateX(orientation[0] * this.or.mult);\r\n }\r\n if (this.data.p && this.data.p.s) {\r\n var positionX = this.px.getValueAtTime(time);\r\n var positionY = this.py.getValueAtTime(time);\r\n if (this.data.p.z) {\r\n var positionZ = this.pz.getValueAtTime(time);\r\n matrix.translate(\r\n positionX * this.px.mult,\r\n positionY * this.py.mult,\r\n -positionZ * this.pz.mult\r\n );\r\n } else {\r\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\r\n }\r\n } else {\r\n var position = this.p.getValueAtTime(time);\r\n matrix.translate(\r\n position[0] * this.p.mult,\r\n position[1] * this.p.mult,\r\n -position[2] * this.p.mult\r\n );\r\n }\r\n return matrix;\r\n /// /\r\n }\r\n\r\n function getTransformStaticValueAtTime() {\r\n return this.v.clone(new Matrix());\r\n }\r\n\r\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\r\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\r\n var prop = getTransformProperty(elem, data, container);\r\n if (prop.dynamicProperties.length) {\r\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\r\n }\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n return prop;\r\n };\r\n\r\n var propertyGetProp = PropertyFactory.getProp;\r\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\r\n var prop = propertyGetProp(elem, data, type, mult, container);\r\n // prop.getVelocityAtTime = getVelocityAtTime;\r\n // prop.loopOut = loopOut;\r\n // prop.loopIn = loopIn;\r\n if (prop.kf) {\r\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\r\n }\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n prop.loopOut = loopOut;\r\n prop.loopIn = loopIn;\r\n prop.smooth = smooth;\r\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\r\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\r\n prop.numKeys = data.a === 1 ? data.k.length : 0;\r\n prop.propertyIndex = data.ix;\r\n var value = 0;\r\n if (type !== 0) {\r\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\r\n }\r\n prop._cachingAtTime = {\r\n lastFrame: initialDefaultFrame,\r\n lastIndex: 0,\r\n value: value,\r\n };\r\n expressionHelpers.searchExpressions(elem, data, prop);\r\n if (prop.k) {\r\n container.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n };\r\n\r\n function getShapeValueAtTime(frameNum) {\r\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\r\n if (!this._cachingAtTime) {\r\n this._cachingAtTime = {\r\n shapeValue: shapePool.clone(this.pv),\r\n lastIndex: 0,\r\n lastTime: initialDefaultFrame,\r\n };\r\n }\r\n\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n if (frameNum !== this._cachingAtTime.lastTime) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\r\n this._cachingAtTime.lastTime = frameNum;\r\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\r\n }\r\n return this._cachingAtTime.shapeValue;\r\n }\r\n\r\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\r\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\r\n\r\n function ShapeExpressions() {}\r\n ShapeExpressions.prototype = {\r\n vertices: function (prop, time) {\r\n if (this.k) {\r\n this.getValue();\r\n }\r\n var shapePath = this.v;\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n var i;\r\n var len = shapePath._length;\r\n var vertices = shapePath[prop];\r\n var points = shapePath.v;\r\n var arr = createSizedArray(len);\r\n for (i = 0; i < len; i += 1) {\r\n if (prop === 'i' || prop === 'o') {\r\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\r\n } else {\r\n arr[i] = [vertices[i][0], vertices[i][1]];\r\n }\r\n }\r\n return arr;\r\n },\r\n points: function (time) {\r\n return this.vertices('v', time);\r\n },\r\n inTangents: function (time) {\r\n return this.vertices('i', time);\r\n },\r\n outTangents: function (time) {\r\n return this.vertices('o', time);\r\n },\r\n isClosed: function () {\r\n return this.v.c;\r\n },\r\n pointOnPath: function (perc, time) {\r\n var shapePath = this.v;\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n if (!this._segmentsLength) {\r\n this._segmentsLength = bez.getSegmentsLength(shapePath);\r\n }\r\n\r\n var segmentsLength = this._segmentsLength;\r\n var lengths = segmentsLength.lengths;\r\n var lengthPos = segmentsLength.totalLength * perc;\r\n var i = 0;\r\n var len = lengths.length;\r\n var accumulatedLength = 0;\r\n var pt;\r\n while (i < len) {\r\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\r\n var initIndex = i;\r\n var endIndex = (shapePath.c && i === len - 1) ? 0 : i + 1;\r\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\r\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\r\n break;\r\n } else {\r\n accumulatedLength += lengths[i].addedLength;\r\n }\r\n i += 1;\r\n }\r\n if (!pt) {\r\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\r\n }\r\n return pt;\r\n },\r\n vectorOnPath: function (perc, time, vectorType) {\r\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\r\n if (perc == 1) { // eslint-disable-line eqeqeq\r\n perc = this.v.c;\r\n } else if (perc == 0) { // eslint-disable-line eqeqeq\r\n perc = 0.999;\r\n }\r\n var pt1 = this.pointOnPath(perc, time);\r\n var pt2 = this.pointOnPath(perc + 0.001, time);\r\n var xLength = pt2[0] - pt1[0];\r\n var yLength = pt2[1] - pt1[1];\r\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\r\n if (magnitude === 0) {\r\n return [0, 0];\r\n }\r\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\r\n return unitVector;\r\n },\r\n tangentOnPath: function (perc, time) {\r\n return this.vectorOnPath(perc, time, 'tangent');\r\n },\r\n normalOnPath: function (perc, time) {\r\n return this.vectorOnPath(perc, time, 'normal');\r\n },\r\n setGroupProperty: expressionHelpers.setGroupProperty,\r\n getValueAtTime: expressionHelpers.getStaticValueAtTime,\r\n };\r\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\r\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\r\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\r\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\r\n\r\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\r\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\r\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\r\n prop.propertyIndex = data.ix;\r\n prop.lock = false;\r\n if (type === 3) {\r\n expressionHelpers.searchExpressions(elem, data.pt, prop);\r\n } else if (type === 4) {\r\n expressionHelpers.searchExpressions(elem, data.ks, prop);\r\n }\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n return prop;\r\n };\r\n}());\r\n\r\n/* global ExpressionManager, TextProperty */\r\n\r\n(function addDecorator() {\r\n function searchExpressions() {\r\n if (this.data.d.x) {\r\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\r\n this.addEffect(this.getExpressionValue.bind(this));\r\n return true;\r\n }\r\n return null;\r\n }\r\n\r\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\r\n var newValue = this.calculateExpression(text);\r\n if (currentValue.t !== newValue) {\r\n var newData = {};\r\n this.copyData(newData, currentValue);\r\n newData.t = newValue.toString();\r\n newData.__complete = false;\r\n return newData;\r\n }\r\n return currentValue;\r\n };\r\n\r\n TextProperty.prototype.searchProperty = function () {\r\n var isKeyframed = this.searchKeyframes();\r\n var hasExpressions = this.searchExpressions();\r\n this.kf = isKeyframed || hasExpressions;\r\n return this.kf;\r\n };\r\n\r\n TextProperty.prototype.searchExpressions = searchExpressions;\r\n}());\r\n\r\n/* global propertyGroupFactory, PropertyInterface */\r\n/* exported ShapePathInterface */\r\n\r\nvar ShapePathInterface = (\r\n\r\n function () {\r\n return function pathInterfaceFactory(shape, view, propertyGroup) {\r\n var prop = view.sh;\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\r\n return interfaceFunction.path;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n path: {\r\n get: function () {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n return prop;\r\n },\r\n },\r\n shape: {\r\n get: function () {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n return prop;\r\n },\r\n },\r\n _name: { value: shape.nm },\r\n ix: { value: shape.ix },\r\n propertyIndex: { value: shape.ix },\r\n mn: { value: shape.mn },\r\n propertyGroup: { value: propertyGroup },\r\n });\r\n return interfaceFunction;\r\n };\r\n }()\r\n);\r\n\r\n/* exported propertyGroupFactory */\r\n\r\nvar propertyGroupFactory = (function () {\r\n return function (interfaceFunction, parentPropertyGroup) {\r\n return function (val) {\r\n val = val === undefined ? 1 : val;\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n return parentPropertyGroup(val - 1);\r\n };\r\n };\r\n}());\r\n\r\n/* exported PropertyInterface */\r\n\r\nvar PropertyInterface = (function () {\r\n return function (propertyName, propertyGroup) {\r\n var interfaceFunction = {\r\n _name: propertyName,\r\n };\r\n\r\n function _propertyGroup(val) {\r\n val = val === undefined ? 1 : val;\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n return propertyGroup(val - 1);\r\n }\r\n\r\n return _propertyGroup;\r\n };\r\n}());\r\n\r\n/* global ExpressionPropertyInterface, PropertyInterface, propertyGroupFactory, ShapePathInterface */\r\n/* exported ShapeExpressionInterface */\r\n\r\nvar ShapeExpressionInterface = (function () {\r\n function iterateElements(shapes, view, propertyGroup) {\r\n var arr = [];\r\n var i;\r\n var len = shapes ? shapes.length : 0;\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'fl') {\r\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'st') {\r\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tm') {\r\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tr') {\r\n // arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\r\n } else if (shapes[i].ty === 'el') {\r\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sr') {\r\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sh') {\r\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rc') {\r\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rd') {\r\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rp') {\r\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'gf') {\r\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else {\r\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n function contentsInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaces;\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n var i = 0;\r\n var len = interfaces.length;\r\n while (i < len) {\r\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\r\n return interfaces[i];\r\n }\r\n i += 1;\r\n }\r\n if (typeof value === 'number') {\r\n return interfaces[value - 1];\r\n }\r\n return null;\r\n };\r\n\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\r\n interfaceFunction.numProperties = interfaces.length;\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.transform = transformInterface;\r\n interfaceFunction.propertyIndex = shape.cix;\r\n interfaceFunction._name = shape.nm;\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n function groupInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n switch (value) {\r\n case 'ADBE Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return interfaceFunction.content;\r\n // Not necessary for now. Keeping them here in case a new case appears\r\n // case 'ADBE Vector Transform Group':\r\n // case 3:\r\n default:\r\n return interfaceFunction.transform;\r\n }\r\n };\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.content = content;\r\n interfaceFunction.transform = transformInterface;\r\n Object.defineProperty(interfaceFunction, '_name', {\r\n get: function () {\r\n return shape.nm;\r\n },\r\n });\r\n // interfaceFunction.content = interfaceFunction;\r\n interfaceFunction.numProperties = shape.np;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.nm = shape.nm;\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function fillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n } if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n return null;\r\n }\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c),\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o),\r\n },\r\n _name: { value: shape.nm },\r\n mn: { value: shape.mn },\r\n });\r\n\r\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Start Point' || val === 'start point') {\r\n return interfaceFunction.startPoint;\r\n }\r\n if (val === 'End Point' || val === 'end point') {\r\n return interfaceFunction.endPoint;\r\n }\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n return null;\r\n }\r\n Object.defineProperties(interfaceFunction, {\r\n startPoint: {\r\n get: ExpressionPropertyInterface(view.s),\r\n },\r\n endPoint: {\r\n get: ExpressionPropertyInterface(view.e),\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o),\r\n },\r\n type: {\r\n get: function () {\r\n return 'a';\r\n },\r\n },\r\n _name: { value: shape.nm },\r\n mn: { value: shape.mn },\r\n });\r\n\r\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n function defaultInterfaceFactory() {\r\n function interfaceFunction() {\r\n return null;\r\n }\r\n return interfaceFunction;\r\n }\r\n\r\n function strokeInterfaceFactory(shape, view, propertyGroup) {\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\r\n function addPropertyToDashOb(i) {\r\n Object.defineProperty(dashOb, shape.d[i].nm, {\r\n get: ExpressionPropertyInterface(view.d.dataProps[i].p),\r\n });\r\n }\r\n var i;\r\n var len = shape.d ? shape.d.length : 0;\r\n var dashOb = {};\r\n for (i = 0; i < len; i += 1) {\r\n addPropertyToDashOb(i);\r\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\r\n }\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n } if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n } if (val === 'Stroke Width' || val === 'stroke width') {\r\n return interfaceFunction.strokeWidth;\r\n }\r\n return null;\r\n }\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c),\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o),\r\n },\r\n strokeWidth: {\r\n get: ExpressionPropertyInterface(view.w),\r\n },\r\n dash: {\r\n get: function () {\r\n return dashOb;\r\n },\r\n },\r\n _name: { value: shape.nm },\r\n mn: { value: shape.mn },\r\n });\r\n\r\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function trimInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === shape.e.ix || val === 'End' || val === 'end') {\r\n return interfaceFunction.end;\r\n }\r\n if (val === shape.s.ix) {\r\n return interfaceFunction.start;\r\n }\r\n if (val === shape.o.ix) {\r\n return interfaceFunction.offset;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaceFunction.propertyIndex = shape.ix;\r\n\r\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n start: {\r\n get: ExpressionPropertyInterface(view.s),\r\n },\r\n end: {\r\n get: ExpressionPropertyInterface(view.e),\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(view.o),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function transformInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.a.ix === value || value === 'Anchor Point') {\r\n return interfaceFunction.anchorPoint;\r\n }\r\n if (shape.o.ix === value || value === 'Opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n if (shape.p.ix === value || value === 'Position') {\r\n return interfaceFunction.position;\r\n }\r\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\r\n return interfaceFunction.rotation;\r\n }\r\n if (shape.s.ix === value || value === 'Scale') {\r\n return interfaceFunction.scale;\r\n }\r\n if ((shape.sk && shape.sk.ix === value) || value === 'Skew') {\r\n return interfaceFunction.skew;\r\n }\r\n if ((shape.sa && shape.sa.ix === value) || value === 'Skew Axis') {\r\n return interfaceFunction.skewAxis;\r\n }\r\n return null;\r\n }\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\r\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\r\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n if (view.transform.mProps.sk) {\r\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\r\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\r\n }\r\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.o),\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.p),\r\n },\r\n anchorPoint: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.a),\r\n },\r\n scale: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.s),\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.r),\r\n },\r\n skew: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sk),\r\n },\r\n skewAxis: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sa),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.ty = 'tr';\r\n interfaceFunction.mn = shape.mn;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n return interfaceFunction;\r\n }\r\n\r\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n if (shape.s.ix === value) {\r\n return interfaceFunction.size;\r\n }\r\n return null;\r\n }\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaceFunction.propertyIndex = shape.ix;\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s),\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function starInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.rotation;\r\n }\r\n if (shape.pt.ix === value) {\r\n return interfaceFunction.points;\r\n }\r\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\r\n return interfaceFunction.outerRadius;\r\n }\r\n if (shape.os.ix === value) {\r\n return interfaceFunction.outerRoundness;\r\n }\r\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\r\n return interfaceFunction.innerRadius;\r\n }\r\n if (shape.is && shape.is.ix === value) {\r\n return interfaceFunction.innerRoundness;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\r\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\r\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n if (shape.ir) {\r\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\r\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p),\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(prop.r),\r\n },\r\n points: {\r\n get: ExpressionPropertyInterface(prop.pt),\r\n },\r\n outerRadius: {\r\n get: ExpressionPropertyInterface(prop.or),\r\n },\r\n outerRoundness: {\r\n get: ExpressionPropertyInterface(prop.os),\r\n },\r\n innerRadius: {\r\n get: ExpressionPropertyInterface(prop.ir),\r\n },\r\n innerRoundness: {\r\n get: ExpressionPropertyInterface(prop.is),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function rectInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.roundness;\r\n }\r\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\r\n return interfaceFunction.size;\r\n }\r\n return null;\r\n }\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p),\r\n },\r\n roundness: {\r\n get: ExpressionPropertyInterface(prop.r),\r\n },\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function roundedInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.r.ix === value || value === 'Round Corners 1') {\r\n return interfaceFunction.radius;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n radius: {\r\n get: ExpressionPropertyInterface(prop.rd),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.c.ix === value || value === 'Copies') {\r\n return interfaceFunction.copies;\r\n } if (shape.o.ix === value || value === 'Offset') {\r\n return interfaceFunction.offset;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\r\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n copies: {\r\n get: ExpressionPropertyInterface(prop.c),\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(prop.o),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n return function (shapes, view, propertyGroup) {\r\n var interfaces;\r\n function _interfaceFunction(value) {\r\n if (typeof value === 'number') {\r\n value = value === undefined ? 1 : value;\r\n if (value === 0) {\r\n return propertyGroup;\r\n }\r\n return interfaces[value - 1];\r\n }\r\n var i = 0;\r\n var len = interfaces.length;\r\n while (i < len) {\r\n if (interfaces[i]._name === value) {\r\n return interfaces[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n function parentGroupWrapper() {\r\n return propertyGroup;\r\n }\r\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\r\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\r\n _interfaceFunction.numProperties = interfaces.length;\r\n _interfaceFunction._name = 'Contents';\r\n return _interfaceFunction;\r\n };\r\n}());\r\n\r\n/* exported TextExpressionInterface */\r\n\r\nvar TextExpressionInterface = (function () {\r\n return function (elem) {\r\n var _prevValue;\r\n var _sourceText;\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Text Document':\r\n return _thisLayerFunction.sourceText;\r\n default:\r\n return null;\r\n }\r\n }\r\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\r\n get: function () {\r\n elem.textProperty.getValue();\r\n var stringValue = elem.textProperty.currentData.t;\r\n if (stringValue !== _prevValue) {\r\n elem.textProperty.currentData.t = _prevValue;\r\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\r\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\r\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\r\n }\r\n return _sourceText;\r\n },\r\n });\r\n return _thisLayerFunction;\r\n };\r\n}());\r\n\r\n/* global Matrix, MaskManagerInterface, TransformExpressionInterface, getDescriptor */\r\n/* exported LayerExpressionInterface */\r\n\r\nvar LayerExpressionInterface = (function () {\r\n function getMatrix(time) {\r\n var toWorldMat = new Matrix();\r\n if (time !== undefined) {\r\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\r\n propMatrix.clone(toWorldMat);\r\n } else {\r\n var transformMat = this._elem.finalTransform.mProp;\r\n transformMat.applyToMatrix(toWorldMat);\r\n }\r\n return toWorldMat;\r\n }\r\n\r\n function toWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function toWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function applyPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\r\n }\r\n\r\n function invertPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n return matrix.inversePoint(arr);\r\n }\r\n\r\n function fromComp(arr) {\r\n var toWorldMat = new Matrix();\r\n toWorldMat.reset();\r\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\r\n }\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n\r\n function sampleImage() {\r\n return [1, 1, 1, 1];\r\n }\r\n\r\n return function (elem) {\r\n var transformInterface;\r\n\r\n function _registerMaskInterface(maskManager) {\r\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\r\n }\r\n function _registerEffectsInterface(effects) {\r\n _thisLayerFunction.effect = effects;\r\n }\r\n\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Root Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return _thisLayerFunction.shapeInterface;\r\n case 1:\r\n case 6:\r\n case 'Transform':\r\n case 'transform':\r\n case 'ADBE Transform Group':\r\n return transformInterface;\r\n case 4:\r\n case 'ADBE Effect Parade':\r\n case 'effects':\r\n case 'Effects':\r\n return _thisLayerFunction.effect;\r\n case 'ADBE Text Properties':\r\n return _thisLayerFunction.textInterface;\r\n default:\r\n return null;\r\n }\r\n }\r\n _thisLayerFunction.getMatrix = getMatrix;\r\n _thisLayerFunction.invertPoint = invertPoint;\r\n _thisLayerFunction.applyPoint = applyPoint;\r\n _thisLayerFunction.toWorld = toWorld;\r\n _thisLayerFunction.toWorldVec = toWorldVec;\r\n _thisLayerFunction.fromWorld = fromWorld;\r\n _thisLayerFunction.fromWorldVec = fromWorldVec;\r\n _thisLayerFunction.toComp = toWorld;\r\n _thisLayerFunction.fromComp = fromComp;\r\n _thisLayerFunction.sampleImage = sampleImage;\r\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\r\n _thisLayerFunction._elem = elem;\r\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\r\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\r\n Object.defineProperties(_thisLayerFunction, {\r\n hasParent: {\r\n get: function () {\r\n return elem.hierarchy.length;\r\n },\r\n },\r\n parent: {\r\n get: function () {\r\n return elem.hierarchy[0].layerInterface;\r\n },\r\n },\r\n rotation: getDescriptor(transformInterface, 'rotation'),\r\n scale: getDescriptor(transformInterface, 'scale'),\r\n position: getDescriptor(transformInterface, 'position'),\r\n opacity: getDescriptor(transformInterface, 'opacity'),\r\n anchorPoint: anchorPointDescriptor,\r\n anchor_point: anchorPointDescriptor,\r\n transform: {\r\n get: function () {\r\n return transformInterface;\r\n },\r\n },\r\n active: {\r\n get: function () {\r\n return elem.isInRange;\r\n },\r\n },\r\n });\r\n\r\n _thisLayerFunction.startTime = elem.data.st;\r\n _thisLayerFunction.index = elem.data.ind;\r\n _thisLayerFunction.source = elem.data.refId;\r\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\r\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\r\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n _thisLayerFunction._name = elem.data.nm;\r\n\r\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\r\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\r\n return _thisLayerFunction;\r\n };\r\n}());\r\n\r\n/* global */\r\n/* exported FootageInterface */\r\n\r\nvar FootageInterface = (function () {\r\n var outlineInterfaceFactory = (function (elem) {\r\n var currentPropertyName = '';\r\n var currentProperty = elem.getFootageData();\r\n function init() {\r\n currentPropertyName = '';\r\n currentProperty = elem.getFootageData();\r\n return searchProperty;\r\n }\r\n function searchProperty(value) {\r\n if (currentProperty[value]) {\r\n currentPropertyName = value;\r\n currentProperty = currentProperty[value];\r\n if (typeof currentProperty === 'object') {\r\n return searchProperty;\r\n }\r\n return currentProperty;\r\n }\r\n var propertyNameIndex = value.indexOf(currentPropertyName);\r\n if (propertyNameIndex !== -1) {\r\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\r\n currentProperty = currentProperty[index];\r\n if (typeof currentProperty === 'object') {\r\n return searchProperty;\r\n }\r\n return currentProperty;\r\n }\r\n return '';\r\n }\r\n return init;\r\n });\r\n\r\n var dataInterfaceFactory = function (elem) {\r\n function interfaceFunction(value) {\r\n if (value === 'Outline') {\r\n return interfaceFunction.outlineInterface();\r\n }\r\n return null;\r\n }\r\n\r\n interfaceFunction._name = 'Outline';\r\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\r\n return interfaceFunction;\r\n };\r\n\r\n return function (elem) {\r\n function _interfaceFunction(value) {\r\n if (value === 'Data') {\r\n return _interfaceFunction.dataInterface;\r\n }\r\n return null;\r\n }\r\n\r\n _interfaceFunction._name = 'Data';\r\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\r\n return _interfaceFunction;\r\n };\r\n}());\r\n\r\n/* exported CompExpressionInterface */\r\n\r\nvar CompExpressionInterface = (function () {\r\n return function (comp) {\r\n function _thisLayerFunction(name) {\r\n var i = 0;\r\n var len = comp.layers.length;\r\n while (i < len) {\r\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\r\n return comp.elements[i].layerInterface;\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n // return {active:false};\r\n }\r\n Object.defineProperty(_thisLayerFunction, '_name', { value: comp.data.nm });\r\n _thisLayerFunction.layer = _thisLayerFunction;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\r\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\r\n _thisLayerFunction.displayStartTime = 0;\r\n _thisLayerFunction.numLayers = comp.layers.length;\r\n return _thisLayerFunction;\r\n };\r\n}());\r\n\r\n/* global ExpressionPropertyInterface */\r\n/* exported TransformExpressionInterface */\r\n\r\nvar TransformExpressionInterface = (function () {\r\n return function (transform) {\r\n function _thisFunction(name) {\r\n switch (name) {\r\n case 'scale':\r\n case 'Scale':\r\n case 'ADBE Scale':\r\n case 6:\r\n return _thisFunction.scale;\r\n case 'rotation':\r\n case 'Rotation':\r\n case 'ADBE Rotation':\r\n case 'ADBE Rotate Z':\r\n case 10:\r\n return _thisFunction.rotation;\r\n case 'ADBE Rotate X':\r\n return _thisFunction.xRotation;\r\n case 'ADBE Rotate Y':\r\n return _thisFunction.yRotation;\r\n case 'position':\r\n case 'Position':\r\n case 'ADBE Position':\r\n case 2:\r\n return _thisFunction.position;\r\n case 'ADBE Position_0':\r\n return _thisFunction.xPosition;\r\n case 'ADBE Position_1':\r\n return _thisFunction.yPosition;\r\n case 'ADBE Position_2':\r\n return _thisFunction.zPosition;\r\n case 'anchorPoint':\r\n case 'AnchorPoint':\r\n case 'Anchor Point':\r\n case 'ADBE AnchorPoint':\r\n case 1:\r\n return _thisFunction.anchorPoint;\r\n case 'opacity':\r\n case 'Opacity':\r\n case 11:\r\n return _thisFunction.opacity;\r\n default:\r\n return null;\r\n }\r\n }\r\n Object.defineProperty(_thisFunction, 'rotation', {\r\n get: ExpressionPropertyInterface(transform.r || transform.rz),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'zRotation', {\r\n get: ExpressionPropertyInterface(transform.rz || transform.r),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'xRotation', {\r\n get: ExpressionPropertyInterface(transform.rx),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'yRotation', {\r\n get: ExpressionPropertyInterface(transform.ry),\r\n });\r\n Object.defineProperty(_thisFunction, 'scale', {\r\n get: ExpressionPropertyInterface(transform.s),\r\n });\r\n var _px;\r\n var _py;\r\n var _pz;\r\n var _transformFactory;\r\n if (transform.p) {\r\n _transformFactory = ExpressionPropertyInterface(transform.p);\r\n } else {\r\n _px = ExpressionPropertyInterface(transform.px);\r\n _py = ExpressionPropertyInterface(transform.py);\r\n if (transform.pz) {\r\n _pz = ExpressionPropertyInterface(transform.pz);\r\n }\r\n }\r\n Object.defineProperty(_thisFunction, 'position', {\r\n get: function () {\r\n if (transform.p) {\r\n return _transformFactory();\r\n }\r\n return [\r\n _px(),\r\n _py(),\r\n _pz ? _pz() : 0];\r\n },\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'xPosition', {\r\n get: ExpressionPropertyInterface(transform.px),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'yPosition', {\r\n get: ExpressionPropertyInterface(transform.py),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'zPosition', {\r\n get: ExpressionPropertyInterface(transform.pz),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'anchorPoint', {\r\n get: ExpressionPropertyInterface(transform.a),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'opacity', {\r\n get: ExpressionPropertyInterface(transform.o),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'skew', {\r\n get: ExpressionPropertyInterface(transform.sk),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'skewAxis', {\r\n get: ExpressionPropertyInterface(transform.sa),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'orientation', {\r\n get: ExpressionPropertyInterface(transform.or),\r\n });\r\n\r\n return _thisFunction;\r\n };\r\n}());\r\n\r\n/* exported ProjectInterface */\r\n\r\nvar ProjectInterface = (function () {\r\n function registerComposition(comp) {\r\n this.compositions.push(comp);\r\n }\r\n\r\n return function () {\r\n function _thisProjectFunction(name) {\r\n var i = 0;\r\n var len = this.compositions.length;\r\n while (i < len) {\r\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\r\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\r\n this.compositions[i].prepareFrame(this.currentFrame);\r\n }\r\n return this.compositions[i].compInterface;\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n\r\n _thisProjectFunction.compositions = [];\r\n _thisProjectFunction.currentFrame = 0;\r\n\r\n _thisProjectFunction.registerComposition = registerComposition;\r\n\r\n return _thisProjectFunction;\r\n };\r\n}());\r\n\r\n/* global propertyGroupFactory, ExpressionPropertyInterface, PropertyInterface */\r\n/* exported EffectsExpressionInterface */\r\n\r\nvar EffectsExpressionInterface = (function () {\r\n var ob = {\r\n createEffectsInterface: createEffectsInterface,\r\n };\r\n\r\n function createEffectsInterface(elem, propertyGroup) {\r\n if (elem.effectsManager) {\r\n var effectElements = [];\r\n var effectsData = elem.data.ef;\r\n var i;\r\n var len = elem.effectsManager.effectElements.length;\r\n for (i = 0; i < len; i += 1) {\r\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\r\n }\r\n\r\n var effects = elem.data.ef || [];\r\n var groupInterface = function (name) {\r\n i = 0;\r\n len = effects.length;\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n return effectElements[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n };\r\n Object.defineProperty(groupInterface, 'numProperties', {\r\n get: function () {\r\n return effects.length;\r\n },\r\n });\r\n return groupInterface;\r\n }\r\n return null;\r\n }\r\n\r\n function createGroupInterface(data, elements, propertyGroup, elem) {\r\n function groupInterface(name) {\r\n var effects = data.ef;\r\n var i = 0;\r\n var len = effects.length;\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n if (effects[i].ty === 5) {\r\n return effectElements[i];\r\n }\r\n return effectElements[i]();\r\n }\r\n i += 1;\r\n }\r\n throw new Error();\r\n }\r\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\r\n\r\n var effectElements = [];\r\n var i;\r\n var len = data.ef.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (data.ef[i].ty === 5) {\r\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\r\n } else {\r\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\r\n }\r\n }\r\n\r\n if (data.mn === 'ADBE Color Control') {\r\n Object.defineProperty(groupInterface, 'color', {\r\n get: function () {\r\n return effectElements[0]();\r\n },\r\n });\r\n }\r\n Object.defineProperties(groupInterface, {\r\n numProperties: {\r\n get: function () {\r\n return data.np;\r\n },\r\n },\r\n _name: { value: data.nm },\r\n propertyGroup: { value: _propertyGroup },\r\n });\r\n groupInterface.enabled = data.en !== 0;\r\n groupInterface.active = groupInterface.enabled;\r\n return groupInterface;\r\n }\r\n\r\n function createValueInterface(element, type, elem, propertyGroup) {\r\n var expressionProperty = ExpressionPropertyInterface(element.p);\r\n function interfaceFunction() {\r\n if (type === 10) {\r\n return elem.comp.compInterface(element.p.v);\r\n }\r\n return expressionProperty();\r\n }\r\n\r\n if (element.p.setGroupProperty) {\r\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\r\n }\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\n/* global createSizedArray */\r\n/* exported MaskManagerInterface */\r\n\r\nvar MaskManagerInterface = (function () {\r\n function MaskInterface(mask, data) {\r\n this._mask = mask;\r\n this._data = data;\r\n }\r\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\r\n get: function () {\r\n if (this._mask.prop.k) {\r\n this._mask.prop.getValue();\r\n }\r\n return this._mask.prop;\r\n },\r\n });\r\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\r\n get: function () {\r\n if (this._mask.op.k) {\r\n this._mask.op.getValue();\r\n }\r\n return this._mask.op.v * 100;\r\n },\r\n });\r\n\r\n var MaskManager = function (maskManager) {\r\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\r\n var i;\r\n var len = maskManager.viewData.length;\r\n for (i = 0; i < len; i += 1) {\r\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\r\n }\r\n\r\n var maskFunction = function (name) {\r\n i = 0;\r\n while (i < len) {\r\n if (maskManager.masksProperties[i].nm === name) {\r\n return _masksInterfaces[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n };\r\n return maskFunction;\r\n };\r\n return MaskManager;\r\n}());\r\n\r\n/* global createTypedArray */\r\n/* exported ExpressionPropertyInterface */\r\n\r\nvar ExpressionPropertyInterface = (function () {\r\n var defaultUnidimensionalValue = { pv: 0, v: 0, mult: 1 };\r\n var defaultMultidimensionalValue = { pv: [0, 0, 0], v: [0, 0, 0], mult: 1 };\r\n\r\n function completeProperty(expressionValue, property, type) {\r\n Object.defineProperty(expressionValue, 'velocity', {\r\n get: function () {\r\n return property.getVelocityAtTime(property.comp.currentFrame);\r\n },\r\n });\r\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\r\n expressionValue.key = function (pos) {\r\n if (!expressionValue.numKeys) {\r\n return 0;\r\n }\r\n var value = '';\r\n if ('s' in property.keyframes[pos - 1]) {\r\n value = property.keyframes[pos - 1].s;\r\n } else if ('e' in property.keyframes[pos - 2]) {\r\n value = property.keyframes[pos - 2].e;\r\n } else {\r\n value = property.keyframes[pos - 2].s;\r\n }\r\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\r\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\r\n valueProp.value = type === 'unidimensional' ? value[0] : value;\r\n return valueProp;\r\n };\r\n expressionValue.valueAtTime = property.getValueAtTime;\r\n expressionValue.speedAtTime = property.getSpeedAtTime;\r\n expressionValue.velocityAtTime = property.getVelocityAtTime;\r\n expressionValue.propertyGroup = property.propertyGroup;\r\n }\r\n\r\n function UnidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultUnidimensionalValue;\r\n }\r\n var mult = 1 / property.mult;\r\n var val = property.pv * mult;\r\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n val = property.v * mult;\r\n if (expressionValue.value !== val) {\r\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n }\r\n return expressionValue;\r\n };\r\n }\r\n\r\n function MultidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultMultidimensionalValue;\r\n }\r\n var mult = 1 / property.mult;\r\n var len = (property.data && property.data.l) || property.pv.length;\r\n var expressionValue = createTypedArray('float32', len);\r\n var arrValue = createTypedArray('float32', len);\r\n expressionValue.value = arrValue;\r\n completeProperty(expressionValue, property, 'multidimensional');\r\n\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n for (var i = 0; i < len; i += 1) {\r\n arrValue[i] = property.v[i] * mult;\r\n expressionValue[i] = arrValue[i];\r\n }\r\n return expressionValue;\r\n };\r\n }\r\n\r\n // TODO: try to avoid using this getter\r\n function defaultGetter() {\r\n return defaultUnidimensionalValue;\r\n }\r\n\r\n return function (property) {\r\n if (!property) {\r\n return defaultGetter;\r\n } if (property.propType === 'unidimensional') {\r\n return UnidimensionalPropertyInterface(property);\r\n }\r\n return MultidimensionalPropertyInterface(property);\r\n };\r\n}());\r\n\r\n/* global expressionHelpers, TextSelectorProp, ExpressionManager */\r\n/* exported TextExpressionSelectorPropFactory */\r\n\r\nvar TextExpressionSelectorPropFactory = (function () { // eslint-disable-line no-unused-vars\r\n function getValueProxy(index, total) {\r\n this.textIndex = index + 1;\r\n this.textTotal = total;\r\n this.v = this.getValue() * this.mult;\r\n return this.v;\r\n }\r\n\r\n return function (elem, data) {\r\n this.pv = 1;\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.mult = 0.01;\r\n this.propType = 'textSelector';\r\n this.textTotal = data.totalChars;\r\n this.selectorValue = 100;\r\n this.lastValue = [1, 1, 1];\r\n this.k = true;\r\n this.x = true;\r\n this.getValue = ExpressionManager.initiateExpression.bind(this)(elem, data, this);\r\n this.getMult = getValueProxy;\r\n this.getVelocityAtTime = expressionHelpers.getVelocityAtTime;\r\n if (this.kf) {\r\n this.getValueAtTime = expressionHelpers.getValueAtTime.bind(this);\r\n } else {\r\n this.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(this);\r\n }\r\n this.setGroupProperty = expressionHelpers.setGroupProperty;\r\n };\r\n}());\r\n\r\nvar propertyGetTextProp = TextSelectorProp.getTextSelectorProp;\r\nTextSelectorProp.getTextSelectorProp = function (elem, data, arr) {\r\n if (data.t === 1) {\r\n return new TextExpressionSelectorPropFactory(elem, data, arr); // eslint-disable-line no-undef\r\n }\r\n return propertyGetTextProp(elem, data, arr);\r\n};\r\n\r\n/* global PropertyFactory */\r\n/* exported SliderEffect, AngleEffect, ColorEffect, PointEffect, LayerIndexEffect, MaskIndexEffect, CheckboxEffect, NoValueEffect */\r\n\r\nfunction SliderEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction AngleEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction ColorEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n}\r\nfunction PointEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n}\r\nfunction LayerIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction MaskIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction CheckboxEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction NoValueEffect() {\r\n this.p = {};\r\n}\r\n\r\n/* global extendPrototype, SliderEffect, AngleEffect, ColorEffect, PointEffect, CheckboxEffect, LayerIndexEffect,\r\nMaskIndexEffect, NoValueEffect, DynamicPropertyContainer */\r\n\r\nfunction EffectsManager(data, element) {\r\n var effects = data.ef || [];\r\n this.effectElements = [];\r\n var i;\r\n var len = effects.length;\r\n var effectItem;\r\n for (i = 0; i < len; i += 1) {\r\n effectItem = new GroupEffect(effects[i], element);\r\n this.effectElements.push(effectItem);\r\n }\r\n}\r\n\r\nfunction GroupEffect(data, element) {\r\n this.init(data, element);\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], GroupEffect);\r\n\r\nGroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\r\n\r\nGroupEffect.prototype.init = function (data, element) {\r\n this.data = data;\r\n this.effectElements = [];\r\n this.initDynamicPropertyContainer(element);\r\n var i;\r\n var len = this.data.ef.length;\r\n var eff;\r\n var effects = this.data.ef;\r\n for (i = 0; i < len; i += 1) {\r\n eff = null;\r\n switch (effects[i].ty) {\r\n case 0:\r\n eff = new SliderEffect(effects[i], element, this);\r\n break;\r\n case 1:\r\n eff = new AngleEffect(effects[i], element, this);\r\n break;\r\n case 2:\r\n eff = new ColorEffect(effects[i], element, this);\r\n break;\r\n case 3:\r\n eff = new PointEffect(effects[i], element, this);\r\n break;\r\n case 4:\r\n case 7:\r\n eff = new CheckboxEffect(effects[i], element, this);\r\n break;\r\n case 10:\r\n eff = new LayerIndexEffect(effects[i], element, this);\r\n break;\r\n case 11:\r\n eff = new MaskIndexEffect(effects[i], element, this);\r\n break;\r\n case 5:\r\n eff = new EffectsManager(effects[i], element, this);\r\n break;\r\n // case 6:\r\n default:\r\n eff = new NoValueEffect(effects[i], element, this);\r\n break;\r\n }\r\n if (eff) {\r\n this.effectElements.push(eff);\r\n }\r\n }\r\n};\r\n\r\n\r\nvar lottie = {};\r\n\r\nfunction setLocationHref(href) {\r\n locationHref = href;\r\n}\r\n\r\nfunction searchAnimations() {\r\n if (standalone === true) {\r\n animationManager.searchAnimations(animationData, standalone, renderer);\r\n } else {\r\n animationManager.searchAnimations();\r\n }\r\n}\r\n\r\nfunction setSubframeRendering(flag) {\r\n subframeEnabled = flag;\r\n}\r\n\r\nfunction setIDPrefix(prefix) {\r\n idPrefix = prefix;\r\n}\r\n\r\nfunction loadAnimation(params) {\r\n if (standalone === true) {\r\n params.animationData = JSON.parse(animationData);\r\n }\r\n return animationManager.loadAnimation(params);\r\n}\r\n\r\nfunction setQuality(value) {\r\n if (typeof value === 'string') {\r\n switch (value) {\r\n case 'high':\r\n defaultCurveSegments = 200;\r\n break;\r\n default:\r\n case 'medium':\r\n defaultCurveSegments = 50;\r\n break;\r\n case 'low':\r\n defaultCurveSegments = 10;\r\n break;\r\n }\r\n } else if (!isNaN(value) && value > 1) {\r\n defaultCurveSegments = value;\r\n }\r\n if (defaultCurveSegments >= 50) {\r\n roundValues(false);\r\n } else {\r\n roundValues(true);\r\n }\r\n}\r\n\r\nfunction inBrowser() {\r\n return typeof navigator !== 'undefined';\r\n}\r\n\r\nfunction installPlugin(type, plugin) {\r\n if (type === 'expressions') {\r\n expressionsPlugin = plugin;\r\n }\r\n}\r\n\r\nfunction getFactory(name) {\r\n switch (name) {\r\n case 'propertyFactory':\r\n return PropertyFactory;\r\n case 'shapePropertyFactory':\r\n return ShapePropertyFactory;\r\n case 'matrix':\r\n return Matrix;\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\nlottie.play = animationManager.play;\r\nlottie.pause = animationManager.pause;\r\nlottie.setLocationHref = setLocationHref;\r\nlottie.togglePause = animationManager.togglePause;\r\nlottie.setSpeed = animationManager.setSpeed;\r\nlottie.setDirection = animationManager.setDirection;\r\nlottie.stop = animationManager.stop;\r\nlottie.searchAnimations = searchAnimations;\r\nlottie.registerAnimation = animationManager.registerAnimation;\r\nlottie.loadAnimation = loadAnimation;\r\nlottie.setSubframeRendering = setSubframeRendering;\r\nlottie.resize = animationManager.resize;\r\n// lottie.start = start;\r\nlottie.goToAndStop = animationManager.goToAndStop;\r\nlottie.destroy = animationManager.destroy;\r\nlottie.setQuality = setQuality;\r\nlottie.inBrowser = inBrowser;\r\nlottie.installPlugin = installPlugin;\r\nlottie.freeze = animationManager.freeze;\r\nlottie.unfreeze = animationManager.unfreeze;\r\nlottie.setVolume = animationManager.setVolume;\r\nlottie.mute = animationManager.mute;\r\nlottie.unmute = animationManager.unmute;\r\nlottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\r\nlottie.useWebWorker = function (flag) {\r\n _useWebWorker = flag;\r\n};\r\nlottie.setIDPrefix = setIDPrefix;\r\nlottie.__getFactory = getFactory;\r\nlottie.version = '5.8.1';\r\n\r\nfunction checkReady() {\r\n if (document.readyState === 'complete') {\r\n clearInterval(readyStateCheckInterval);\r\n searchAnimations();\r\n }\r\n}\r\n\r\nfunction getQueryVariable(variable) {\r\n var vars = queryString.split('&');\r\n for (var i = 0; i < vars.length; i += 1) {\r\n var pair = vars[i].split('=');\r\n if (decodeURIComponent(pair[0]) == variable) { // eslint-disable-line eqeqeq\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n return null;\r\n}\r\nvar standalone = '__[STANDALONE]__';\r\nvar animationData = '__[ANIMATIONDATA]__';\r\nvar renderer = '';\r\nvar queryString;\r\nif (standalone) {\r\n var scripts = document.getElementsByTagName('script');\r\n var index = scripts.length - 1;\r\n var myScript = scripts[index] || {\r\n src: '',\r\n };\r\n queryString = myScript.src.replace(/^[^\\?]+\\??/, ''); // eslint-disable-line no-useless-escape\r\n renderer = getQueryVariable('renderer');\r\n}\r\nvar readyStateCheckInterval = setInterval(checkReady, 100);\r\n\nreturn lottie;\n}));","require('../modules/es.symbol');\nrequire('../modules/es.symbol.description');\nrequire('../modules/es.symbol.async-iterator');\nrequire('../modules/es.symbol.has-instance');\nrequire('../modules/es.symbol.is-concat-spreadable');\nrequire('../modules/es.symbol.iterator');\nrequire('../modules/es.symbol.match');\nrequire('../modules/es.symbol.match-all');\nrequire('../modules/es.symbol.replace');\nrequire('../modules/es.symbol.search');\nrequire('../modules/es.symbol.species');\nrequire('../modules/es.symbol.split');\nrequire('../modules/es.symbol.to-primitive');\nrequire('../modules/es.symbol.to-string-tag');\nrequire('../modules/es.symbol.unscopables');\nrequire('../modules/es.aggregate-error');\nrequire('../modules/es.array.at');\nrequire('../modules/es.array.concat');\nrequire('../modules/es.array.copy-within');\nrequire('../modules/es.array.every');\nrequire('../modules/es.array.fill');\nrequire('../modules/es.array.filter');\nrequire('../modules/es.array.find');\nrequire('../modules/es.array.find-index');\nrequire('../modules/es.array.flat');\nrequire('../modules/es.array.flat-map');\nrequire('../modules/es.array.for-each');\nrequire('../modules/es.array.from');\nrequire('../modules/es.array.includes');\nrequire('../modules/es.array.index-of');\nrequire('../modules/es.array.is-array');\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.array.join');\nrequire('../modules/es.array.last-index-of');\nrequire('../modules/es.array.map');\nrequire('../modules/es.array.of');\nrequire('../modules/es.array.reduce');\nrequire('../modules/es.array.reduce-right');\nrequire('../modules/es.array.reverse');\nrequire('../modules/es.array.slice');\nrequire('../modules/es.array.some');\nrequire('../modules/es.array.sort');\nrequire('../modules/es.array.species');\nrequire('../modules/es.array.splice');\nrequire('../modules/es.array.unscopables.flat');\nrequire('../modules/es.array.unscopables.flat-map');\nrequire('../modules/es.array-buffer.constructor');\nrequire('../modules/es.array-buffer.is-view');\nrequire('../modules/es.array-buffer.slice');\nrequire('../modules/es.data-view');\nrequire('../modules/es.date.get-year');\nrequire('../modules/es.date.now');\nrequire('../modules/es.date.set-year');\nrequire('../modules/es.date.to-gmt-string');\nrequire('../modules/es.date.to-iso-string');\nrequire('../modules/es.date.to-json');\nrequire('../modules/es.date.to-primitive');\nrequire('../modules/es.date.to-string');\nrequire('../modules/es.escape');\nrequire('../modules/es.function.bind');\nrequire('../modules/es.function.has-instance');\nrequire('../modules/es.function.name');\nrequire('../modules/es.global-this');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.json.to-string-tag');\nrequire('../modules/es.map');\nrequire('../modules/es.math.acosh');\nrequire('../modules/es.math.asinh');\nrequire('../modules/es.math.atanh');\nrequire('../modules/es.math.cbrt');\nrequire('../modules/es.math.clz32');\nrequire('../modules/es.math.cosh');\nrequire('../modules/es.math.expm1');\nrequire('../modules/es.math.fround');\nrequire('../modules/es.math.hypot');\nrequire('../modules/es.math.imul');\nrequire('../modules/es.math.log10');\nrequire('../modules/es.math.log1p');\nrequire('../modules/es.math.log2');\nrequire('../modules/es.math.sign');\nrequire('../modules/es.math.sinh');\nrequire('../modules/es.math.tanh');\nrequire('../modules/es.math.to-string-tag');\nrequire('../modules/es.math.trunc');\nrequire('../modules/es.number.constructor');\nrequire('../modules/es.number.epsilon');\nrequire('../modules/es.number.is-finite');\nrequire('../modules/es.number.is-integer');\nrequire('../modules/es.number.is-nan');\nrequire('../modules/es.number.is-safe-integer');\nrequire('../modules/es.number.max-safe-integer');\nrequire('../modules/es.number.min-safe-integer');\nrequire('../modules/es.number.parse-float');\nrequire('../modules/es.number.parse-int');\nrequire('../modules/es.number.to-fixed');\nrequire('../modules/es.number.to-precision');\nrequire('../modules/es.object.assign');\nrequire('../modules/es.object.create');\nrequire('../modules/es.object.define-getter');\nrequire('../modules/es.object.define-properties');\nrequire('../modules/es.object.define-property');\nrequire('../modules/es.object.define-setter');\nrequire('../modules/es.object.entries');\nrequire('../modules/es.object.freeze');\nrequire('../modules/es.object.from-entries');\nrequire('../modules/es.object.get-own-property-descriptor');\nrequire('../modules/es.object.get-own-property-descriptors');\nrequire('../modules/es.object.get-own-property-names');\nrequire('../modules/es.object.get-prototype-of');\nrequire('../modules/es.object.has-own');\nrequire('../modules/es.object.is');\nrequire('../modules/es.object.is-extensible');\nrequire('../modules/es.object.is-frozen');\nrequire('../modules/es.object.is-sealed');\nrequire('../modules/es.object.keys');\nrequire('../modules/es.object.lookup-getter');\nrequire('../modules/es.object.lookup-setter');\nrequire('../modules/es.object.prevent-extensions');\nrequire('../modules/es.object.seal');\nrequire('../modules/es.object.set-prototype-of');\nrequire('../modules/es.object.to-string');\nrequire('../modules/es.object.values');\nrequire('../modules/es.parse-float');\nrequire('../modules/es.parse-int');\nrequire('../modules/es.promise');\nrequire('../modules/es.promise.all-settled');\nrequire('../modules/es.promise.any');\nrequire('../modules/es.promise.finally');\nrequire('../modules/es.reflect.apply');\nrequire('../modules/es.reflect.construct');\nrequire('../modules/es.reflect.define-property');\nrequire('../modules/es.reflect.delete-property');\nrequire('../modules/es.reflect.get');\nrequire('../modules/es.reflect.get-own-property-descriptor');\nrequire('../modules/es.reflect.get-prototype-of');\nrequire('../modules/es.reflect.has');\nrequire('../modules/es.reflect.is-extensible');\nrequire('../modules/es.reflect.own-keys');\nrequire('../modules/es.reflect.prevent-extensions');\nrequire('../modules/es.reflect.set');\nrequire('../modules/es.reflect.set-prototype-of');\nrequire('../modules/es.reflect.to-string-tag');\nrequire('../modules/es.regexp.constructor');\nrequire('../modules/es.regexp.dot-all');\nrequire('../modules/es.regexp.exec');\nrequire('../modules/es.regexp.flags');\nrequire('../modules/es.regexp.sticky');\nrequire('../modules/es.regexp.test');\nrequire('../modules/es.regexp.to-string');\nrequire('../modules/es.set');\nrequire('../modules/es.string.at-alternative');\nrequire('../modules/es.string.code-point-at');\nrequire('../modules/es.string.ends-with');\nrequire('../modules/es.string.from-code-point');\nrequire('../modules/es.string.includes');\nrequire('../modules/es.string.iterator');\nrequire('../modules/es.string.match');\nrequire('../modules/es.string.match-all');\nrequire('../modules/es.string.pad-end');\nrequire('../modules/es.string.pad-start');\nrequire('../modules/es.string.raw');\nrequire('../modules/es.string.repeat');\nrequire('../modules/es.string.replace');\nrequire('../modules/es.string.replace-all');\nrequire('../modules/es.string.search');\nrequire('../modules/es.string.split');\nrequire('../modules/es.string.starts-with');\nrequire('../modules/es.string.substr');\nrequire('../modules/es.string.trim');\nrequire('../modules/es.string.trim-end');\nrequire('../modules/es.string.trim-start');\nrequire('../modules/es.string.anchor');\nrequire('../modules/es.string.big');\nrequire('../modules/es.string.blink');\nrequire('../modules/es.string.bold');\nrequire('../modules/es.string.fixed');\nrequire('../modules/es.string.fontcolor');\nrequire('../modules/es.string.fontsize');\nrequire('../modules/es.string.italics');\nrequire('../modules/es.string.link');\nrequire('../modules/es.string.small');\nrequire('../modules/es.string.strike');\nrequire('../modules/es.string.sub');\nrequire('../modules/es.string.sup');\nrequire('../modules/es.typed-array.float32-array');\nrequire('../modules/es.typed-array.float64-array');\nrequire('../modules/es.typed-array.int8-array');\nrequire('../modules/es.typed-array.int16-array');\nrequire('../modules/es.typed-array.int32-array');\nrequire('../modules/es.typed-array.uint8-array');\nrequire('../modules/es.typed-array.uint8-clamped-array');\nrequire('../modules/es.typed-array.uint16-array');\nrequire('../modules/es.typed-array.uint32-array');\nrequire('../modules/es.typed-array.at');\nrequire('../modules/es.typed-array.copy-within');\nrequire('../modules/es.typed-array.every');\nrequire('../modules/es.typed-array.fill');\nrequire('../modules/es.typed-array.filter');\nrequire('../modules/es.typed-array.find');\nrequire('../modules/es.typed-array.find-index');\nrequire('../modules/es.typed-array.for-each');\nrequire('../modules/es.typed-array.from');\nrequire('../modules/es.typed-array.includes');\nrequire('../modules/es.typed-array.index-of');\nrequire('../modules/es.typed-array.iterator');\nrequire('../modules/es.typed-array.join');\nrequire('../modules/es.typed-array.last-index-of');\nrequire('../modules/es.typed-array.map');\nrequire('../modules/es.typed-array.of');\nrequire('../modules/es.typed-array.reduce');\nrequire('../modules/es.typed-array.reduce-right');\nrequire('../modules/es.typed-array.reverse');\nrequire('../modules/es.typed-array.set');\nrequire('../modules/es.typed-array.slice');\nrequire('../modules/es.typed-array.some');\nrequire('../modules/es.typed-array.sort');\nrequire('../modules/es.typed-array.subarray');\nrequire('../modules/es.typed-array.to-locale-string');\nrequire('../modules/es.typed-array.to-string');\nrequire('../modules/es.unescape');\nrequire('../modules/es.weak-map');\nrequire('../modules/es.weak-set');\nrequire('../modules/web.dom-collections.for-each');\nrequire('../modules/web.dom-collections.iterator');\nrequire('../modules/web.immediate');\nrequire('../modules/web.queue-microtask');\nrequire('../modules/web.timers');\nrequire('../modules/web.url');\nrequire('../modules/web.url.to-json');\nrequire('../modules/web.url-search-params');\n\nmodule.exports = require('../internals/path');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = $toString(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\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\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\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(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var nativeSymbol = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = nativeSymbol ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.match` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.matchAll` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.matchall\ndefineWellKnownSymbol('matchAll');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.search` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.split` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","'use strict';\nvar $ = require('../internals/export');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar iterate = require('../internals/iterate');\nvar toString = require('../internals/to-string');\n\nvar $AggregateError = function AggregateError(errors, message) {\n var that = this;\n if (!(that instanceof $AggregateError)) return new $AggregateError(errors, message);\n if (setPrototypeOf) {\n // eslint-disable-next-line unicorn/error-message -- expected\n that = setPrototypeOf(new Error(undefined), getPrototypeOf(that));\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', toString(message));\n var errorsArray = [];\n iterate(errors, errorsArray.push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\n$AggregateError.prototype = create(Error.prototype, {\n constructor: createPropertyDescriptor(5, $AggregateError),\n message: createPropertyDescriptor(5, ''),\n name: createPropertyDescriptor(5, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true }, {\n AggregateError: $AggregateError\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\n$({ target: 'Array', proto: true }, {\n at: function at(index) {\n var O = toObject(this);\n var len = toLength(O.length);\n var relativeIndex = toInteger(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n }\n});\n\naddToUnscopables('at');\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var $ = require('../internals/export');\nvar copyWithin = require('../internals/array-copy-within');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n$({ target: 'Array', proto: true }, {\n copyWithin: copyWithin\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('copyWithin');\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\n\n// `Array.prototype.every` method\n// https://tc39.es/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar aFunction = require('../internals/a-function');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-array.prototype.flatmap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A;\n aFunction(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.es/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","var $ = require('../internals/export');\nvar lastIndexOf = require('../internals/array-last-index-of');\n\n// `Array.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\n// eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing\n$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, {\n lastIndexOf: lastIndexOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar createProperty = require('../internals/create-property');\n\nvar ISNT_GENERIC = fails(function () {\n function F() { /* empty */ }\n // eslint-disable-next-line es/no-array-of -- required for testing\n return !(Array.of.call(F) instanceof F);\n});\n\n// `Array.of` method\n// https://tc39.es/ecma262/#sec-array.of\n// WebKit Array.of isn't generic\n$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, {\n of: function of(/* ...args */) {\n var index = 0;\n var argumentsLength = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(argumentsLength);\n while (argumentsLength > index) createProperty(result, index, arguments[index++]);\n result.length = argumentsLength;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduceRight = require('../internals/array-reduce').right;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduceRight');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduceright\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = [].reverse;\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse.call(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\n\n// `Array.prototype.some` method\n// https://tc39.es/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aFunction(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort.call(array) : nativeSort.call(array, comparefn);\n\n var items = [];\n var arrayLength = toLength(array.length);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) items.push(array[index]);\n }\n\n items = internalSort(items, getSortCompare(comparefn));\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","var setSpecies = require('../internals/set-species');\n\n// `Array[@@species]` getter\n// https://tc39.es/ecma262/#sec-get-array-@@species\nsetSpecies('Array');\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","// IEEE754 conversions based on https://github.com/feross/ieee754\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","var $ = require('../internals/export');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\n\n// `ArrayBuffer.isView` method\n// https://tc39.es/ecma262/#sec-arraybuffer.isview\n$({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n isView: ArrayBufferViewCore.isView\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anObject = require('../internals/an-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar nativeArrayBufferSlice = ArrayBuffer.prototype.slice;\n\nvar INCORRECT_SLICE = fails(function () {\n return !new ArrayBuffer(2).slice(1, undefined).byteLength;\n});\n\n// `ArrayBuffer.prototype.slice` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice\n$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {\n slice: function slice(start, end) {\n if (nativeArrayBufferSlice !== undefined && end === undefined) {\n return nativeArrayBufferSlice.call(anObject(this), start); // FF fix\n }\n var length = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first));\n var viewSource = new DataView(this);\n var viewTarget = new DataView(result);\n var index = 0;\n while (first < fin) {\n viewTarget.setUint8(index++, viewSource.getUint8(first++));\n } return result;\n }\n});\n","var $ = require('../internals/export');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\n\n// `DataView` constructor\n// https://tc39.es/ecma262/#sec-dataview-constructor\n$({ global: true, forced: !NATIVE_ARRAY_BUFFER }, {\n DataView: ArrayBufferModule.DataView\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\n\nvar FORCED = fails(function () {\n return new Date(16e11).getYear() !== 120;\n});\n\nvar getFullYear = Date.prototype.getFullYear;\n\n// `Date.prototype.getYear` method\n// https://tc39.es/ecma262/#sec-date.prototype.getyear\n$({ target: 'Date', proto: true, forced: FORCED }, {\n getYear: function getYear() {\n return getFullYear.call(this) - 1900;\n }\n});\n","var $ = require('../internals/export');\n\n// `Date.now` method\n// https://tc39.es/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n now: function now() {\n return new Date().getTime();\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\n\nvar getTime = Date.prototype.getTime;\nvar setFullYear = Date.prototype.setFullYear;\n\n// `Date.prototype.setYear` method\n// https://tc39.es/ecma262/#sec-date.prototype.setyear\n$({ target: 'Date', proto: true }, {\n setYear: function setYear(year) {\n // validate\n getTime.call(this);\n var yi = toInteger(year);\n var yyyy = 0 <= yi && yi <= 99 ? yi + 1900 : yi;\n return setFullYear.call(this, yyyy);\n }\n});\n","var $ = require('../internals/export');\n\n// `Date.prototype.toGMTString` method\n// https://tc39.es/ecma262/#sec-date.prototype.togmtstring\n$({ target: 'Date', proto: true }, {\n toGMTString: Date.prototype.toUTCString\n});\n","var $ = require('../internals/export');\nvar toISOString = require('../internals/date-to-iso-string');\n\n// `Date.prototype.toISOString` method\n// https://tc39.es/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit has a broken implementations\n$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, {\n toISOString: toISOString\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar padStart = require('../internals/string-pad').start;\n\nvar abs = Math.abs;\nvar DatePrototype = Date.prototype;\nvar getTime = DatePrototype.getTime;\nvar nativeDateToISOString = DatePrototype.toISOString;\n\n// `Date.prototype.toISOString` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit fails here:\nmodule.exports = (fails(function () {\n return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n nativeDateToISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var date = this;\n var year = date.getUTCFullYear();\n var milliseconds = date.getUTCMilliseconds();\n var sign = year < 0 ? '-' : year > 9999 ? '+' : '';\n return sign + padStart(abs(year), sign ? 6 : 4, 0) +\n '-' + padStart(date.getUTCMonth() + 1, 2, 0) +\n '-' + padStart(date.getUTCDate(), 2, 0) +\n 'T' + padStart(date.getUTCHours(), 2, 0) +\n ':' + padStart(date.getUTCMinutes(), 2, 0) +\n ':' + padStart(date.getUTCSeconds(), 2, 0) +\n '.' + padStart(milliseconds, 3, 0) +\n 'Z';\n} : nativeDateToISOString;\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar FORCED = fails(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n});\n\n// `Date.prototype.toJSON` method\n// https://tc39.es/ecma262/#sec-date.prototype.tojson\n$({ target: 'Date', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O, 'number');\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar dateToPrimitive = require('../internals/date-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar DatePrototype = Date.prototype;\n\n// `Date.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nif (!(TO_PRIMITIVE in DatePrototype)) {\n createNonEnumerableProperty(DatePrototype, TO_PRIMITIVE, dateToPrimitive);\n}\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\n\n// `Date.prototype[@@toPrimitive](hint)` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nmodule.exports = function (hint) {\n anObject(this);\n if (hint === 'string' || hint === 'default') hint = 'string';\n else if (hint !== 'number') throw TypeError('Incorrect hint');\n return ordinaryToPrimitive(this, hint);\n};\n","var redefine = require('../internals/redefine');\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar nativeDateToString = DatePrototype[TO_STRING];\nvar getTime = DatePrototype.getTime;\n\n// `Date.prototype.toString` method\n// https://tc39.es/ecma262/#sec-date.prototype.tostring\nif (String(new Date(NaN)) != INVALID_DATE) {\n redefine(DatePrototype, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare -- NaN check\n return value === value ? nativeDateToString.call(this) : INVALID_DATE;\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar toString = require('../internals/to-string');\n\nvar raw = /[\\w*+\\-./@]/;\n\nvar hex = function (code, length) {\n var result = code.toString(16);\n while (result.length < length) result = '0' + result;\n return result;\n};\n\n// `escape` method\n// https://tc39.es/ecma262/#sec-escape-string\n$({ global: true }, {\n escape: function escape(string) {\n var str = toString(string);\n var result = '';\n var length = str.length;\n var index = 0;\n var chr, code;\n while (index < length) {\n chr = str.charAt(index++);\n if (raw.test(chr)) {\n result += chr;\n } else {\n code = chr.charCodeAt(0);\n if (code < 256) {\n result += '%' + hex(code, 2);\n } else {\n result += '%u' + hex(code, 4).toUpperCase();\n }\n }\n } return result;\n }\n});\n","var $ = require('../internals/export');\nvar bind = require('../internals/function-bind');\n\n// `Function.prototype.bind` method\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n$({ target: 'Function', proto: true }, {\n bind: bind\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar HAS_INSTANCE = wellKnownSymbol('hasInstance');\nvar FunctionPrototype = Function.prototype;\n\n// `Function.prototype[@@hasInstance]` method\n// https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance\nif (!(HAS_INSTANCE in FunctionPrototype)) {\n definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n } });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true }, {\n globalThis: global\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\n\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar re = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar fix = function (match, offset, string) {\n var prev = string.charAt(offset - 1);\n var next = string.charAt(offset + 1);\n if ((low.test(match) && !hi.test(next)) || (hi.test(match) && !low.test(prev))) {\n return '\\\\u' + match.charCodeAt(0).toString(16);\n } return match;\n};\n\nvar FORCED = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n // https://github.com/tc39/proposal-well-formed-stringify\n $({ target: 'JSON', stat: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var result = $stringify.apply(null, arguments);\n return typeof result == 'string' ? result.replace(re, fix) : result;\n }\n });\n}\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// eslint-disable-next-line es/no-math-acosh -- required for testing\nvar $acosh = Math.acosh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\nvar LN2 = Math.LN2;\n\nvar FORCED = !$acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n || Math.floor($acosh(Number.MAX_VALUE)) != 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n || $acosh(Infinity) != Infinity;\n\n// `Math.acosh` method\n// https://tc39.es/ecma262/#sec-math.acosh\n$({ target: 'Math', stat: true, forced: FORCED }, {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? log(x) + LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","var $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-asinh -- required for testing\nvar $asinh = Math.asinh;\nvar log = Math.log;\nvar sqrt = Math.sqrt;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : log(x + sqrt(x * x + 1));\n}\n\n// `Math.asinh` method\n// https://tc39.es/ecma262/#sec-math.asinh\n// Tor Browser bug: Math.asinh(0) -> -0\n$({ target: 'Math', stat: true, forced: !($asinh && 1 / $asinh(0) > 0) }, {\n asinh: asinh\n});\n","var $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-atanh -- required for testing\nvar $atanh = Math.atanh;\nvar log = Math.log;\n\n// `Math.atanh` method\n// https://tc39.es/ecma262/#sec-math.atanh\n// Tor Browser bug: Math.atanh(-0) -> 0\n$({ target: 'Math', stat: true, forced: !($atanh && 1 / $atanh(-0) < 0) }, {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : log((1 + x) / (1 - x)) / 2;\n }\n});\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\n\n// `Math.cbrt` method\n// https://tc39.es/ecma262/#sec-math.cbrt\n$({ target: 'Math', stat: true }, {\n cbrt: function cbrt(x) {\n return sign(x = +x) * pow(abs(x), 1 / 3);\n }\n});\n","var $ = require('../internals/export');\n\nvar floor = Math.floor;\nvar log = Math.log;\nvar LOG2E = Math.LOG2E;\n\n// `Math.clz32` method\n// https://tc39.es/ecma262/#sec-math.clz32\n$({ target: 'Math', stat: true }, {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - floor(log(x + 0.5) * LOG2E) : 32;\n }\n});\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// eslint-disable-next-line es/no-math-cosh -- required for testing\nvar $cosh = Math.cosh;\nvar abs = Math.abs;\nvar E = Math.E;\n\n// `Math.cosh` method\n// https://tc39.es/ecma262/#sec-math.cosh\n$({ target: 'Math', stat: true, forced: !$cosh || $cosh(710) === Infinity }, {\n cosh: function cosh(x) {\n var t = expm1(abs(x) - 1) + 1;\n return (t + 1 / (t * E * E)) * (E / 2);\n }\n});\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\n// `Math.expm1` method\n// https://tc39.es/ecma262/#sec-math.expm1\n// eslint-disable-next-line es/no-math-expm1 -- required for testing\n$({ target: 'Math', stat: true, forced: expm1 != Math.expm1 }, { expm1: expm1 });\n","var $ = require('../internals/export');\nvar fround = require('../internals/math-fround');\n\n// `Math.fround` method\n// https://tc39.es/ecma262/#sec-math.fround\n$({ target: 'Math', stat: true }, { fround: fround });\n","var sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\n// `Math.fround` method implementation\n// https://tc39.es/ecma262/#sec-math.fround\n// eslint-disable-next-line es/no-math-fround -- safe\nmodule.exports = Math.fround || function fround(x) {\n var $abs = abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","var $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-hypot -- required for testing\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, forced: BUGGY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n hypot: function hypot(value1, value2) {\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-math-imul -- required for testing\nvar $imul = Math.imul;\n\nvar FORCED = fails(function () {\n return $imul(0xFFFFFFFF, 5) != -5 || $imul.length != 2;\n});\n\n// `Math.imul` method\n// https://tc39.es/ecma262/#sec-math.imul\n// some WebKit versions fails with big numbers, some has wrong arity\n$({ target: 'Math', stat: true, forced: FORCED }, {\n imul: function imul(x, y) {\n var UINT16 = 0xFFFF;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","var $ = require('../internals/export');\n\nvar log = Math.log;\nvar LOG10E = Math.LOG10E;\n\n// `Math.log10` method\n// https://tc39.es/ecma262/#sec-math.log10\n$({ target: 'Math', stat: true }, {\n log10: function log10(x) {\n return log(x) * LOG10E;\n }\n});\n","var $ = require('../internals/export');\nvar log1p = require('../internals/math-log1p');\n\n// `Math.log1p` method\n// https://tc39.es/ecma262/#sec-math.log1p\n$({ target: 'Math', stat: true }, { log1p: log1p });\n","var $ = require('../internals/export');\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.es/ecma262/#sec-math.log2\n$({ target: 'Math', stat: true }, {\n log2: function log2(x) {\n return log(x) / LN2;\n }\n});\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.es/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar expm1 = require('../internals/math-expm1');\n\nvar abs = Math.abs;\nvar exp = Math.exp;\nvar E = Math.E;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-math-sinh -- required for testing\n return Math.sinh(-2e-17) != -2e-17;\n});\n\n// `Math.sinh` method\n// https://tc39.es/ecma262/#sec-math.sinh\n// V8 near Chromium 38 has a problem with very small numbers\n$({ target: 'Math', stat: true, forced: FORCED }, {\n sinh: function sinh(x) {\n return abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (E / 2);\n }\n});\n","var $ = require('../internals/export');\nvar expm1 = require('../internals/math-expm1');\n\nvar exp = Math.exp;\n\n// `Math.tanh` method\n// https://tc39.es/ecma262/#sec-math.tanh\n$({ target: 'Math', stat: true }, {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var $ = require('../internals/export');\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n trunc: function trunc(it) {\n return (it > 0 ? floor : ceil)(it);\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a number');\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var $ = require('../internals/export');\n\n// `Number.EPSILON` constant\n// https://tc39.es/ecma262/#sec-number.epsilon\n$({ target: 'Number', stat: true }, {\n EPSILON: Math.pow(2, -52)\n});\n","var $ = require('../internals/export');\nvar numberIsFinite = require('../internals/number-is-finite');\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });\n","var global = require('../internals/global');\n\nvar globalIsFinite = global.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n// eslint-disable-next-line es/no-number-isfinite -- safe\nmodule.exports = Number.isFinite || function isFinite(it) {\n return typeof it == 'number' && globalIsFinite(it);\n};\n","var $ = require('../internals/export');\nvar isInteger = require('../internals/is-integer');\n\n// `Number.isInteger` method\n// https://tc39.es/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n isInteger: isInteger\n});\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return number != number;\n }\n});\n","var $ = require('../internals/export');\nvar isInteger = require('../internals/is-integer');\n\nvar abs = Math.abs;\n\n// `Number.isSafeInteger` method\n// https://tc39.es/ecma262/#sec-number.issafeinteger\n$({ target: 'Number', stat: true }, {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1FFFFFFFFFFFFF;\n }\n});\n","var $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true }, {\n MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","var $ = require('../internals/export');\n\n// `Number.MIN_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.min_safe_integer\n$({ target: 'Number', stat: true }, {\n MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF\n});\n","var $ = require('../internals/export');\nvar parseFloat = require('../internals/number-parse-float');\n\n// `Number.parseFloat` method\n// https://tc39.es/ecma262/#sec-number.parseFloat\n// eslint-disable-next-line es/no-number-parsefloat -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseFloat != parseFloat }, {\n parseFloat: parseFloat\n});\n","var $ = require('../internals/export');\nvar parseInt = require('../internals/number-parse-int');\n\n// `Number.parseInt` method\n// https://tc39.es/ecma262/#sec-number.parseint\n// eslint-disable-next-line es/no-number-parseint -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseInt != parseInt }, {\n parseInt: parseInt\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar thisNumberValue = require('../internals/this-number-value');\n\nvar nativeToPrecision = 1.0.toPrecision;\n\nvar FORCED = fails(function () {\n // IE7-\n return nativeToPrecision.call(1, undefined) !== '1';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToPrecision.call({});\n});\n\n// `Number.prototype.toPrecision` method\n// https://tc39.es/ecma262/#sec-number.prototype.toprecision\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toPrecision: function toPrecision(precision) {\n return precision === undefined\n ? nativeToPrecision.call(thisNumberValue(this))\n : nativeToPrecision.call(thisNumberValue(this), precision);\n }\n});\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n create: create\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar aFunction = require('../internals/a-function');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineGetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__defineGetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __defineGetter__: function __defineGetter__(P, getter) {\n definePropertyModule.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });\n }\n });\n}\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n defineProperties: defineProperties\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModile = require('../internals/object-define-property');\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n defineProperty: objectDefinePropertyModile.f\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar aFunction = require('../internals/a-function');\nvar definePropertyModule = require('../internals/object-define-property');\n\n// `Object.prototype.__defineSetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__defineSetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __defineSetter__: function __defineSetter__(P, setter) {\n definePropertyModule.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });\n }\n });\n}\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","var $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar $freeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;\n }\n});\n","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\n// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: getOwnPropertyNames\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var $ = require('../internals/export');\nvar hasOwn = require('../internals/has');\n\n// `Object.hasOwn` method\n// https://github.com/tc39/proposal-accessible-object-hasownproperty\n$({ target: 'Object', stat: true }, {\n hasOwn: hasOwn\n});\n","var $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.es/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n is: is\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n isExtensible: function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\n\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar $isFrozen = Object.isFrozen;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isFrozen(1); });\n\n// `Object.isFrozen` method\n// https://tc39.es/ecma262/#sec-object.isfrozen\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n isFrozen: function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\n\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar $isSealed = Object.isSealed;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isSealed(1); });\n\n// `Object.isSealed` method\n// https://tc39.es/ecma262/#sec-object.issealed\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n isSealed: function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n }\n});\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupGetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__lookupGetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __lookupGetter__: function __lookupGetter__(P) {\n var O = toObject(this);\n var key = toPropertyKey(P);\n var desc;\n do {\n if (desc = getOwnPropertyDescriptor(O, key)) return desc.get;\n } while (O = getPrototypeOf(O));\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FORCED = require('../internals/object-prototype-accessors-forced');\nvar toObject = require('../internals/to-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Object.prototype.__lookupSetter__` method\n// https://tc39.es/ecma262/#sec-object.prototype.__lookupSetter__\nif (DESCRIPTORS) {\n $({ target: 'Object', proto: true, forced: FORCED }, {\n __lookupSetter__: function __lookupSetter__(P) {\n var O = toObject(this);\n var key = toPropertyKey(P);\n var desc;\n do {\n if (desc = getOwnPropertyDescriptor(O, key)) return desc.set;\n } while (O = getPrototypeOf(O));\n }\n });\n}\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-preventextensions -- safe\nvar $preventExtensions = Object.preventExtensions;\nvar FAILS_ON_PRIMITIVES = fails(function () { $preventExtensions(1); });\n\n// `Object.preventExtensions` method\n// https://tc39.es/ecma262/#sec-object.preventextensions\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n preventExtensions: function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(onFreeze(it)) : it;\n }\n});\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-seal -- safe\nvar $seal = Object.seal;\nvar FAILS_ON_PRIMITIVES = fails(function () { $seal(1); });\n\n// `Object.seal` method\n// https://tc39.es/ecma262/#sec-object.seal\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n seal: function seal(it) {\n return $seal && isObject(it) ? $seal(onFreeze(it)) : it;\n }\n});\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","var $ = require('../internals/export');\nvar parseFloatImplementation = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != parseFloatImplementation }, {\n parseFloat: parseFloatImplementation\n});\n","var $ = require('../internals/export');\nvar parseIntImplementation = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != parseIntImplementation }, {\n parseInt: parseIntImplementation\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar PromiseConstructorPrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar SUBCLASSING = false;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructorPrototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = new PromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n PromiseConstructorPrototype = PromiseConstructor.prototype;\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructorPrototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function' && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n redefine(NativePromisePrototype, 'catch', PromiseConstructorPrototype['catch'], { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromiseConstructorPrototype);\n }\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = typeof window == 'object';\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar getBuiltIn = require('../internals/get-built-in');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true }, {\n any: function any(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n errors.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && typeof NativePromise == 'function') {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromise.prototype['finally'] !== method) {\n redefine(NativePromise.prototype, 'finally', method, { unsafe: true });\n }\n}\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\n\nvar nativeApply = getBuiltIn('Reflect', 'apply');\nvar functionApply = Function.apply;\n\n// MS Edge argumentsList argument is optional\nvar OPTIONAL_ARGUMENTS_LIST = !fails(function () {\n nativeApply(function () { /* empty */ });\n});\n\n// `Reflect.apply` method\n// https://tc39.es/ecma262/#sec-reflect.apply\n$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {\n apply: function apply(target, thisArgument, argumentsList) {\n aFunction(target);\n anObject(argumentsList);\n return nativeApply\n ? nativeApply(target, thisArgument, argumentsList)\n : functionApply.call(target, thisArgument, argumentsList);\n }\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar fails = require('../internals/fails');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\nvar ERROR_INSTEAD_OF_FALSE = fails(function () {\n // eslint-disable-next-line es/no-reflect -- required for testing\n Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 });\n});\n\n// `Reflect.defineProperty` method\n// https://tc39.es/ecma262/#sec-reflect.defineproperty\n$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n var key = toPropertyKey(propertyKey);\n anObject(attributes);\n try {\n definePropertyModule.f(target, key, attributes);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Reflect.deleteProperty` method\n// https://tc39.es/ecma262/#sec-reflect.deleteproperty\n$({ target: 'Reflect', stat: true }, {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey);\n return descriptor && !descriptor.configurable ? false : delete target[propertyKey];\n }\n});\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.es/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var descriptor, prototype;\n if (anObject(target) === receiver) return target[propertyKey];\n descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey);\n if (descriptor) return isDataDescriptor(descriptor)\n ? descriptor.value\n : descriptor.get === undefined ? undefined : descriptor.get.call(receiver);\n if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n get: get\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\n\n// `Reflect.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-reflect.getownpropertydescriptor\n$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\n// `Reflect.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-reflect.getprototypeof\n$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(target) {\n return objectGetPrototypeOf(anObject(target));\n }\n});\n","var $ = require('../internals/export');\n\n// `Reflect.has` method\n// https://tc39.es/ecma262/#sec-reflect.has\n$({ target: 'Reflect', stat: true }, {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar objectIsExtensible = Object.isExtensible;\n\n// `Reflect.isExtensible` method\n// https://tc39.es/ecma262/#sec-reflect.isextensible\n$({ target: 'Reflect', stat: true }, {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return objectIsExtensible ? objectIsExtensible(target) : true;\n }\n});\n","var $ = require('../internals/export');\nvar ownKeys = require('../internals/own-keys');\n\n// `Reflect.ownKeys` method\n// https://tc39.es/ecma262/#sec-reflect.ownkeys\n$({ target: 'Reflect', stat: true }, {\n ownKeys: ownKeys\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar anObject = require('../internals/an-object');\nvar FREEZING = require('../internals/freezing');\n\n// `Reflect.preventExtensions` method\n// https://tc39.es/ecma262/#sec-reflect.preventextensions\n$({ target: 'Reflect', stat: true, sham: !FREEZING }, {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions');\n if (objectPreventExtensions) objectPreventExtensions(target);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar fails = require('../internals/fails');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\n// `Reflect.set` method\n// https://tc39.es/ecma262/#sec-reflect.set\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n var existingDescriptor, prototype, setter;\n if (!ownDescriptor) {\n if (isObject(prototype = getPrototypeOf(target))) {\n return set(prototype, propertyKey, V, receiver);\n }\n ownDescriptor = createPropertyDescriptor(0);\n }\n if (isDataDescriptor(ownDescriptor)) {\n if (ownDescriptor.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n definePropertyModule.f(receiver, propertyKey, existingDescriptor);\n } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));\n } else {\n setter = ownDescriptor.set;\n if (setter === undefined) return false;\n setter.call(receiver, V);\n } return true;\n}\n\n// MS Edge 17-18 Reflect.set allows setting the property to object\n// with non-writable property on the prototype\nvar MS_EDGE_BUG = fails(function () {\n var Constructor = function () { /* empty */ };\n var object = definePropertyModule.f(new Constructor(), 'a', { configurable: true });\n // eslint-disable-next-line es/no-reflect -- required for testing\n return Reflect.set(Constructor.prototype, 'a', 1, object) !== false;\n});\n\n$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, {\n set: set\n});\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\nvar objectSetPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Reflect.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-reflect.setprototypeof\nif (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n anObject(target);\n aPossiblePrototype(proto);\n try {\n objectSetPrototypeOf(target, proto);\n return true;\n } catch (error) {\n return false;\n }\n }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n$({ global: true }, { Reflect: {} });\n\n// Reflect[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-reflect-@@tostringtag\nsetToStringTag(global.Reflect, 'Reflect', true);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\n// TODO: Use only propper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = string.charAt(index);\n if (chr === '\\\\') {\n result += chr + string.charAt(++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = string.charAt(index);\n if (chr === '\\\\') {\n chr = chr + string.charAt(++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (IS_NCG.test(string.slice(index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || has(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named.push([groupname, groupid]);\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || pattern instanceof RegExpWrapper) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags.call(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && flags.indexOf('s') > -1;\n if (dotAll) flags = flags.replace(/s/g, '');\n }\n\n rawFlags = flags;\n\n if (UNSUPPORTED_Y && 'sticky' in re1) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxy(keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\nvar RegExpPrototype = RegExp.prototype;\n\n// `RegExp.prototype.dotAll` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall\nif (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {\n defineProperty(RegExpPrototype, 'dotAll', {\n configurable: true,\n get: function () {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (this instanceof RegExp) {\n return !!getInternalState(this).dotAll;\n }\n throw TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModule = require('../internals/object-define-property');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\nvar FORCED = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags').get.call({ dotAll: true, sticky: true }) !== 'sy';\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) objectDefinePropertyModule.f(RegExp.prototype, 'flags', {\n configurable: true,\n get: regExpFlags\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_Y = require('../internals/regexp-sticky-helpers').UNSUPPORTED_Y;\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\nvar RegExpPrototype = RegExp.prototype;\n\n// `RegExp.prototype.sticky` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky\nif (DESCRIPTORS && UNSUPPORTED_Y) {\n defineProperty(RegExpPrototype, 'sticky', {\n configurable: true,\n get: function () {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (this instanceof RegExp) {\n return !!getInternalState(this).sticky;\n }\n throw TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\n\nvar DELEGATES_TO_EXEC = function () {\n var execCalled = false;\n var re = /[ac]/;\n re.exec = function () {\n execCalled = true;\n return /./.exec.apply(this, arguments);\n };\n return re.test('abc') === true && execCalled;\n}();\n\nvar nativeTest = /./.test;\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n test: function (str) {\n if (typeof this.exec !== 'function') {\n return nativeTest.call(this, str);\n }\n var result = this.exec(str);\n if (result !== null && !isObject(result)) {\n throw new Error('RegExp exec method returned something other than an Object or null');\n }\n return !!result;\n }\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\nmodule.exports = collection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\n\nvar FORCED = fails(function () {\n return '𠮷'.at(0) !== '\\uD842';\n});\n\n// `String.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\n$({ target: 'String', proto: true, forced: FORCED }, {\n at: function at(index) {\n var S = toString(requireObjectCoercible(this));\n var len = toLength(S.length);\n var relativeIndex = toInteger(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : S.charAt(k);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.es/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n codePointAt: function codePointAt(pos) {\n return codeAt(this, pos);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","var $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar fromCharCode = String.fromCharCode;\n// eslint-disable-next-line es/no-string-fromcodepoint -- required for testing\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length != 1;\n\n// `String.fromCodePoint` method\n// https://tc39.es/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n fromCodePoint: function fromCodePoint(x) {\n var elements = [];\n var length = arguments.length;\n var i = 0;\n var code;\n while (length > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');\n elements.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)\n );\n } return elements.join('');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~toString(requireObjectCoercible(this))\n .indexOf(toString(notARegExp(searchString)), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\n/* eslint-disable es/no-string-prototype-matchall -- safe */\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof-raw');\nvar isRegExp = require('../internals/is-regexp');\nvar getRegExpFlags = require('../internals/regexp-flags');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar InternalStateModule = require('../internals/internal-state');\nvar IS_PURE = require('../internals/is-pure');\n\nvar MATCH_ALL = wellKnownSymbol('matchAll');\nvar REGEXP_STRING = 'RegExp String';\nvar REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);\nvar RegExpPrototype = RegExp.prototype;\nvar regExpBuiltinExec = RegExpPrototype.exec;\nvar nativeMatchAll = ''.matchAll;\n\nvar WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {\n 'a'.matchAll(/./);\n});\n\nvar regExpExec = function (R, S) {\n var exec = R.exec;\n var result;\n if (typeof exec == 'function') {\n result = exec.call(R, S);\n if (typeof result != 'object') throw TypeError('Incorrect exec result');\n return result;\n } return regExpBuiltinExec.call(R, S);\n};\n\n// eslint-disable-next-line max-len -- ignore\nvar $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, global, fullUnicode) {\n setInternalState(this, {\n type: REGEXP_STRING_ITERATOR,\n regexp: regexp,\n string: string,\n global: global,\n unicode: fullUnicode,\n done: false\n });\n}, REGEXP_STRING, function next() {\n var state = getInternalState(this);\n if (state.done) return { value: undefined, done: true };\n var R = state.regexp;\n var S = state.string;\n var match = regExpExec(R, S);\n if (match === null) return { value: undefined, done: state.done = true };\n if (state.global) {\n if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);\n return { value: match, done: false };\n }\n state.done = true;\n return { value: match, done: false };\n});\n\nvar $matchAll = function (string) {\n var R = anObject(this);\n var S = toString(string);\n var C, flagsValue, flags, matcher, global, fullUnicode;\n C = speciesConstructor(R, RegExp);\n flagsValue = R.flags;\n if (flagsValue === undefined && R instanceof RegExp && !('flags' in RegExpPrototype)) {\n flagsValue = getRegExpFlags.call(R);\n }\n flags = flagsValue === undefined ? '' : toString(flagsValue);\n matcher = new C(C === RegExp ? R.source : R, flags);\n global = !!~flags.indexOf('g');\n fullUnicode = !!~flags.indexOf('u');\n matcher.lastIndex = toLength(R.lastIndex);\n return new $RegExpStringIterator(matcher, S, global, fullUnicode);\n};\n\n// `String.prototype.matchAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.matchall\n$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {\n matchAll: function matchAll(regexp) {\n var O = requireObjectCoercible(this);\n var flags, S, matcher, rx;\n if (regexp != null) {\n if (isRegExp(regexp)) {\n flags = toString(requireObjectCoercible('flags' in RegExpPrototype\n ? regexp.flags\n : getRegExpFlags.call(regexp)\n ));\n if (!~flags.indexOf('g')) throw TypeError('`.matchAll` does not allow non-global regexes');\n }\n if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);\n matcher = regexp[MATCH_ALL];\n if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;\n if (matcher != null) return aFunction(matcher).call(regexp, O);\n } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);\n S = toString(O);\n rx = new RegExp(regexp, 'g');\n return IS_PURE ? $matchAll.call(rx, S) : rx[MATCH_ALL](S);\n }\n});\n\nIS_PURE || MATCH_ALL in RegExpPrototype || createNonEnumerableProperty(RegExpPrototype, MATCH_ALL, $matchAll);\n","'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\n\n// `String.raw` method\n// https://tc39.es/ecma262/#sec-string.raw\n$({ target: 'String', stat: true }, {\n raw: function raw(template) {\n var rawTemplate = toIndexedObject(template.raw);\n var literalSegments = toLength(rawTemplate.length);\n var argumentsLength = arguments.length;\n var elements = [];\n var i = 0;\n while (literalSegments > i) {\n elements.push(toString(rawTemplate[i++]));\n if (i < argumentsLength) elements.push(toString(arguments[i]));\n } return elements.join('');\n }\n});\n","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue === 'string' &&\n replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1 &&\n replaceValue.indexOf('$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = toString(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar $ = require('../internals/export');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getRegExpFlags = require('../internals/regexp-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar RegExpPrototype = RegExp.prototype;\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return string.indexOf(searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (searchValue != null) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible('flags' in RegExpPrototype\n ? searchValue.flags\n : getRegExpFlags.call(searchValue)\n ));\n if (!~flags.indexOf('g')) throw TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = searchValue[REPLACE];\n if (replacer !== undefined) {\n return replacer.call(searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return toString(O).replace(searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n if (functionalReplace) {\n replacement = toString(replaceValue(searchString, position, string));\n } else {\n replacement = getSubstitution(searchString, string, position, [], undefined, replaceValue);\n }\n result += string.slice(endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += string.slice(endOfLastMatch);\n }\n return result;\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? S.slice(q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar $startsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toInteger = require('../internals/to-integer');\nvar toString = require('../internals/to-string');\n\nvar slice = ''.slice;\nvar max = Math.max;\nvar min = Math.min;\n\n// `String.prototype.substr` method\n// https://tc39.es/ecma262/#sec-string.prototype.substr\n$({ target: 'String', proto: true }, {\n substr: function substr(start, length) {\n var that = toString(requireObjectCoercible(this));\n var size = that.length;\n var intStart = toInteger(start);\n var intLength, intEnd;\n if (intStart === Infinity) intStart = 0;\n if (intStart < 0) intStart = max(size + intStart, 0);\n intLength = length === undefined ? size : toInteger(length);\n if (intLength <= 0 || intLength === Infinity) return '';\n intEnd = min(intStart + intLength, size);\n return intStart >= intEnd ? '' : slice.call(that, intStart, intEnd);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimEnd = require('../internals/string-trim').end;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\nvar FORCED = forcedStringTrimMethod('trimEnd');\n\nvar trimEnd = FORCED ? function trimEnd() {\n return $trimEnd(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimEnd;\n\n// `String.prototype.{ trimEnd, trimRight }` methods\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// https://tc39.es/ecma262/#String.prototype.trimright\n$({ target: 'String', proto: true, forced: FORCED }, {\n trimEnd: trimEnd,\n trimRight: trimEnd\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\nvar FORCED = forcedStringTrimMethod('trimStart');\n\nvar trimStart = FORCED ? function trimStart() {\n return $trimStart(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimStart;\n\n// `String.prototype.{ trimStart, trimLeft }` methods\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// https://tc39.es/ecma262/#String.prototype.trimleft\n$({ target: 'String', proto: true, forced: FORCED }, {\n trimStart: trimStart,\n trimLeft: trimStart\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.big` method\n// https://tc39.es/ecma262/#sec-string.prototype.big\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, {\n big: function big() {\n return createHTML(this, 'big', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.blink` method\n// https://tc39.es/ecma262/#sec-string.prototype.blink\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, {\n blink: function blink() {\n return createHTML(this, 'blink', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.bold` method\n// https://tc39.es/ecma262/#sec-string.prototype.bold\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, {\n bold: function bold() {\n return createHTML(this, 'b', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontcolor` method\n// https://tc39.es/ecma262/#sec-string.prototype.fontcolor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, {\n fontcolor: function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontsize` method\n// https://tc39.es/ecma262/#sec-string.prototype.fontsize\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, {\n fontsize: function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.italics` method\n// https://tc39.es/ecma262/#sec-string.prototype.italics\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, {\n italics: function italics() {\n return createHTML(this, 'i', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.strike` method\n// https://tc39.es/ecma262/#sec-string.prototype.strike\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, {\n strike: function strike() {\n return createHTML(this, 'strike', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sub` method\n// https://tc39.es/ecma262/#sec-string.prototype.sub\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {\n sub: function sub() {\n return createHTML(this, 'sub', '', '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sup` method\n// https://tc39.es/ecma262/#sec-string.prototype.sup\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, {\n sup: function sup() {\n return createHTML(this, 'sup', '', '');\n }\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var toInteger = require('../internals/to-integer');\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float64Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float64', function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int8', function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int16', function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Int32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Int32', function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8ClampedArray` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = toLength(O.length);\n var relativeIndex = toInteger(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $copyWithin = require('../internals/array-copy-within');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n return $fill.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n});\n","var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nmodule.exports = function (instance, list) {\n return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list);\n};\n","module.exports = function (Constructor, list) {\n var index = 0;\n var length = list.length;\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar exportTypedArrayStaticMethod = require('../internals/array-buffer-view-core').exportTypedArrayStaticMethod;\nvar typedArrayFrom = require('../internals/typed-array-from');\n\n// `%TypedArray%.from` method\n// https://tc39.es/ecma262/#sec-%typedarray%.from\nexportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('join', function join(separator) {\n return $join.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (typedArraySpeciesConstructor(O))(length);\n });\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.of` method\n// https://tc39.es/ecma262/#sec-%typedarray%.of\nexportTypedArrayStaticMethod('of', function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = new (aTypedArrayConstructor(this))(length);\n while (length > index) result[index] = arguments[index++];\n return result;\n}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toOffset = require('../internals/to-offset');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = typedArraySpeciesConstructor(this);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar aFunction = require('../internals/a-function');\nvar toLength = require('../internals/to-length');\nvar internalSort = require('../internals/array-sort');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = global.Uint16Array;\nvar nativeSort = Uint16Array && Uint16Array.prototype.sort;\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !fails(function () {\n var array = new Uint16Array(2);\n array.sort(null);\n array.sort({});\n});\n\nvar STABLE_SORT = !!nativeSort && !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 74;\n if (FF) return FF < 67;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 602;\n\n var array = new Uint16Array(516);\n var expected = Array(516);\n var index, mod;\n\n for (index = 0; index < 516; index++) {\n mod = index % 4;\n array[index] = 515 - index;\n expected[index] = index - 2 * mod + 3;\n }\n\n array.sort(function (a, b) {\n return (a / 4 | 0) - (b / 4 | 0);\n });\n\n for (index = 0; index < 516; index++) {\n if (array[index] !== expected[index]) return true;\n }\n});\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (y !== y) return -1;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (x !== x) return 1;\n if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n return x > y;\n };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n var array = this;\n if (comparefn !== undefined) aFunction(comparefn);\n if (STABLE_SORT) return nativeSort.call(array, comparefn);\n\n aTypedArray(array);\n var arrayLength = toLength(array.length);\n var items = Array(arrayLength);\n var index;\n\n for (index = 0; index < arrayLength; index++) {\n items[index] = array[index];\n }\n\n items = internalSort(array, getSortCompare(comparefn));\n\n for (index = 0; index < arrayLength; index++) {\n array[index] = items[index];\n }\n\n return array;\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n var C = typedArraySpeciesConstructor(O);\n return new C(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar global = require('../internals/global');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return arrayJoin.call(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","'use strict';\nvar $ = require('../internals/export');\nvar toString = require('../internals/to-string');\n\nvar fromCharCode = String.fromCharCode;\nvar hex2 = /^[\\da-f]{2}$/i;\nvar hex4 = /^[\\da-f]{4}$/i;\n\n// `unescape` method\n// https://tc39.es/ecma262/#sec-unescape-string\n$({ global: true }, {\n unescape: function unescape(string) {\n var str = toString(string);\n var result = '';\n var length = str.length;\n var index = 0;\n var chr, slice;\n while (index < length) {\n chr = str.charAt(index++);\n if (chr === '%') {\n if (str.charAt(index) === 'u') {\n slice = str.slice(index + 1, index + 5);\n if (hex4.test(slice)) {\n result += fromCharCode(parseInt(slice, 16));\n index += 5;\n continue;\n }\n } else {\n slice = str.slice(index, index + 2);\n if (hex2.test(slice)) {\n result += fromCharCode(parseInt(slice, 16));\n index += 2;\n continue;\n }\n }\n }\n result += chr;\n } return result;\n }\n});\n","'use strict';\nvar global = require('../internals/global');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceIternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = Object.isExtensible;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.enable();\n var WeakMapPrototype = $WeakMap.prototype;\n var nativeDelete = WeakMapPrototype['delete'];\n var nativeHas = WeakMapPrototype.has;\n var nativeGet = WeakMapPrototype.get;\n var nativeSet = WeakMapPrototype.set;\n redefineAll(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete.call(this, key) || state.frozen['delete'](key);\n } return nativeDelete.call(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) || state.frozen.has(key);\n } return nativeHas.call(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);\n } return nativeGet.call(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);\n } else nativeSet.call(this, key, value);\n return this;\n }\n });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar task = require('../internals/task');\n\nvar FORCED = !global.setImmediate || !global.clearImmediate;\n\n// http://w3c.github.io/setImmediate/\n$({ global: true, bind: true, enumerable: true, forced: FORCED }, {\n // `setImmediate` method\n // http://w3c.github.io/setImmediate/#si-setImmediate\n setImmediate: task.set,\n // `clearImmediate` method\n // http://w3c.github.io/setImmediate/#si-clearImmediate\n clearImmediate: task.clear\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar microtask = require('../internals/microtask');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar process = global.process;\n\n// `queueMicrotask` method\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask\n$({ global: true, enumerable: true, noTargetGet: true }, {\n queueMicrotask: function queueMicrotask(fn) {\n var domain = IS_NODE && process.domain;\n microtask(domain ? domain.bind(fn) : fn);\n }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\n\nvar wrap = function (scheduler) {\n return function (handler, timeout /* , ...arguments */) {\n var boundArgs = arguments.length > 2;\n var args = boundArgs ? slice.call(arguments, 2) : undefined;\n return scheduler(boundArgs ? function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof handler == 'function' ? handler : Function(handler)).apply(this, args);\n } : handler, timeout);\n };\n};\n\n// ie9- setTimeout & setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n$({ global: true, bind: true, forced: MSIE }, {\n // `setTimeout` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n setTimeout: wrap(global.setTimeout),\n // `setInterval` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n setInterval: wrap(global.setInterval)\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n/* eslint-disable no-control-regex -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+|[\\u0000-\\u0020]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable no-control-regex -- safe */\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return input.charAt(pointer);\n };\n\n if (chr() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex == 8) return;\n if (chr() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(chr())) return;\n while (DIGIT.test(chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (chr() == ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !has(set, chr) ? chr : encodeURIComponent(chr);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && ALPHA.test(chr)) {\n buffer += chr.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (ALPHANUMERIC.test(chr) || chr == '+' || chr == '-' || chr == '.')) {\n buffer += chr.toLowerCase();\n } else if (chr == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (chr == '/' || (chr == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (chr == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (chr == '/' || chr == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr != '/' && chr != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr == '[') seenBracket = true;\n else if (chr == ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (DIGIT.test(chr)) {\n buffer += chr;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr == '/' || chr == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (chr == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (chr == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr == '/' || chr == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr == EOF || chr == '/' || chr == '\\\\' || chr == '?' || chr == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (chr != '/' && chr != '\\\\') continue;\n } else if (!stateOverride && chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n state = PATH;\n if (chr != '/') continue;\n } break;\n\n case PATH:\n if (\n chr == EOF || chr == '/' ||\n (chr == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (chr == '?' || chr == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (chr != '/' && !(chr == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (chr != '/' && !(chr == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n if (chr == \"'\" && isSpecial(url)) url.query += '%27';\n else if (chr == '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr != EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = $toString(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, $toString(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = $toString(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, $toString(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom($toString(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom($toString(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, $toString(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, $toString(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = $toString(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, $toString(pathname), PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = $toString(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = $toString(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements -- TODO\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","'use strict';\nvar $ = require('../internals/export');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n toJSON: function toJSON() {\n return URL.prototype.toString.call(this);\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// Function to make IE9+ support forEach:\nif (typeof Array.prototype.forEach != 'function') {\n\tArray.prototype.forEach = function(callback) {\n\t\tfor (var i = 0; i < this.length; i++) {\n\t\t\tcallback.apply(this, [this[i], i, this]);\n\t\t}\n\t};\n}\n\nif (window.NodeList && !NodeList.prototype.forEach) {\n\tNodeList.prototype.forEach = Array.prototype.forEach;\n}\n\n/* Polyfill for javascript closest() function */\nif (!Element.prototype.matches) {\n\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n}\n\nif (!Element.prototype.closest) {\n\tElement.prototype.closest = function(s) {\n\t\tvar el = this;\n\n\t\tdo {\n\t\t\tif (el.matches(s)) return el;\n\t\t\tel = el.parentElement || el.parentNode;\n\t\t} while (el !== null && el.nodeType === 1);\n\t\treturn null;\n\t};\n}\n","import setCSSVariable from './helpers/setCSSVariable';\nclass DigifixGeneral {\n\tconstructor() {\n\t\tthis.mobileMenuOpen = false;\n\t\tthis.scrollLockPosition = 0;\n\t}\n\tinit() {\n\t\tthis.setupCSSVariables();\n\t\twindow.addEventListener('resize', () => {\n\t\t\tthis.setupCSSVariables();\n\t\t});\n\t\tthis.setupMenu();\n\t}\n\tsetupMenu() {\n\t\tvar hamburgerToggle = document.querySelector('.hamburger-menu-icon');\n\t\tif (!hamburgerToggle) {\n\t\t\treturn;\n\t\t}\n\t\thamburgerToggle.addEventListener('click', (event) => {\n\t\t\tevent.preventDefault();\n\t\t\tthis.mobileMenuOpen = !this.mobileMenuOpen;\n\t\t\tdocument.querySelector('body').classList.toggle('mobile-nav-open');\n\t\t\t//this.handleScrollLock();\n\t\t});\n\t}\n\thandleScrollLock() {\n\t\tif (this.mobileMenuOpen) {\n\t\t\t/* Mobile menu has just been opened */\n\t\t\tthis.scrollLockPosition = window.digifixScrollSpy.variables.scrollPosition;\n\t\t} else {\n\t\t\t/* Mobile menu has just been closed */\n\t\t\tconsole.log('scrolling to ' + this.scrollLockPosition);\n\t\t\twindow.scrollTo(this.scrollLockPosition, 0);\n\t\t}\n\t}\n\tsetupCSSVariables() {\n\t\tvar fullWindowHeight = window.innerHeight.toString();\n\t\tvar halfWindowHeight = (window.innerHeight / 2).toString();\n\t\tvar mobileHeaderHeight = $('.header-mobile').outerHeight();\n\t\tvar desktopHeaderHeight = $('.header-desktop').outerHeight();\n\t\tsetCSSVariable('fullWindowHeight', fullWindowHeight + 'px');\n\t\tsetCSSVariable('halfWindowHeight', halfWindowHeight + 'px');\n\t\tsetCSSVariable('mobileHeaderHeight', mobileHeaderHeight + 'px');\n\t\tsetCSSVariable('desktopHeaderHeight', desktopHeaderHeight + 'px');\n\t}\n}\nwindow.addEventListener('load', () => {\n\twindow.DigifixGeneral = new DigifixGeneral();\n\twindow.DigifixGeneral.init();\n});\n","class DigifixJobListing {\n\tconstructor() {}\n\tisGutenberg() {\n\t\treturn typeof wp !== 'undefined' && typeof wp.blocks !== 'undefined';\n\t}\n\tinit() {\n\t\tlet jobListingItems = document.querySelectorAll('.job-listing-item');\n\t\tif (!jobListingItems.length) {\n\t\t\treturn;\n\t\t}\n\t\tjobListingItems.forEach((item) => {\n\t\t\tvar trigger = item.querySelector('[data-toggle-job-listing-item]');\n\t\t\tvar slideTarget = item.querySelector('.job-listing-item-description');\n\t\t\tif (!trigger) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttrigger.addEventListener('click', function(event) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\titem.classList.toggle('active');\n\t\t\t\tvar slideTimeout = 500;\n\t\t\t\tif (window.DigifixJobListing.isGutenberg()) {\n\t\t\t\t\tslideTimeout = 0;\n\t\t\t\t}\n\t\t\t\t$(slideTarget).slideToggle(slideTimeout);\n\t\t\t});\n\n\t\t\t/* If we're in the admin panel, trigger a click event on each trigger to display the text so that it's not hidden behind an accordion */\n\t\t\tif (window.DigifixJobListing.isGutenberg()) {\n\t\t\t\ttrigger.click();\n\t\t\t}\n\t\t});\n\t}\n}\nwindow.addEventListener('load', () => {\n\twindow.DigifixJobListing = new DigifixJobListing();\n\twindow.DigifixJobListing.init();\n\n\t/* Re-init the Javascript functionality if the block is re-rendered in the Gutenberg editor */\n\tif (window.acf) {\n\t\twindow.acf.addAction('render_block_preview/type=job-listing', function($elem, blockDetails) {\n\t\t\twindow.DigifixJobListing.init();\n\t\t});\n\t}\n});\n","class DigifixScrollSpy {\n\tconstructor() {\n\t\tthis.elements = {\n\t\t\tbody: $('body'),\n\t\t\theaderDesktop: $('#masthead'),\n\t\t\theaderMobile: $('#header-mobile'),\n\t\t\telementsWithBackgroundColor: [],\n\t\t};\n\t\tthis.variables = {\n\t\t\tscrollPosition: 0,\n\t\t\theaderHeight: 50,\n\t\t};\n\t}\n\tinit() {\n\t\tif (!this.elements.headerDesktop) {\n\t\t\treturn;\n\t\t}\n\n\t\tdigifixScrollSpy.setupMenuColorChangingElements();\n\n\t\t$(window).on('resize', function() {\n\t\t\tdigifixScrollSpy.setupMenuColorChangingElements();\n\t\t});\n\n\t\tdigifixScrollSpy.handleMenuColorOnScroll();\n\t\t$(window).on('scroll', function() {\n\t\t\tdigifixScrollSpy.handleMenuColorOnScroll();\n\t\t});\n\n\t\tdigifixScrollSpy.elements.body.addClass('scroll-up');\n\n\t\t$(window).on('scroll', function() {\n\t\t\tvar oldScrollPos = digifixScrollSpy.variables.scrollPosition;\n\t\t\tvar newScrollPos = $(window).scrollTop();\n\n\t\t\t/* Fix for Safari */\n\t\t\tif (newScrollPos <= 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (newScrollPos < oldScrollPos || newScrollPos < 20) {\n\t\t\t\tdigifixScrollSpy.elements.body.addClass('scroll-up');\n\t\t\t\tdigifixScrollSpy.elements.body.removeClass('scroll-down');\n\t\t\t} else {\n\t\t\t\tdigifixScrollSpy.elements.body.addClass('scroll-down');\n\t\t\t\tdigifixScrollSpy.elements.body.removeClass('scroll-up');\n\t\t\t}\n\n\t\t\tif (newScrollPos > digifixScrollSpy.variables.headerHeight * 2) {\n\t\t\t\tdigifixScrollSpy.elements.body.addClass('header-height-scrolled');\n\t\t\t} else {\n\t\t\t\tdigifixScrollSpy.elements.body.removeClass('header-height-scrolled');\n\t\t\t}\n\n\t\t\tdigifixScrollSpy.variables.scrollPosition = $(window).scrollTop();\n\t\t});\n\t}\n\t/* When the user scrolls, check if the user is scrolling over a colored section, and if so, the menu color should be changed */\n\tsetupMenuColorChangingElements() {\n\t\tthis.elementsWithBackgroundColor = [];\n\t\tvar classesAndColors = [\n\t\t\t{\n\t\t\t\tclass: '.bg-white',\n\t\t\t\tmenuColor: 'dark',\n\t\t\t},\n\t\t\t{\n\t\t\t\tclass: '.bg-dark-brown',\n\t\t\t\tmenuColor: 'light',\n\t\t\t},\n\t\t\t{\n\t\t\t\tclass: '.bg-rust',\n\t\t\t\tmenuColor: 'dark',\n\t\t\t},\n\t\t\t{\n\t\t\t\tclass: '.bg-yellow',\n\t\t\t\tmenuColor: 'dark',\n\t\t\t},\n\t\t\t{\n\t\t\t\tclass: '.bg-beige',\n\t\t\t\tmenuColor: 'dark',\n\t\t\t},\n\t\t\t{\n\t\t\t\tclass: '.bg-black',\n\t\t\t\tmenuColor: 'light',\n\t\t\t},\n\t\t];\n\t\tclassesAndColors.forEach((classAndColor) => {\n\t\t\t$(classAndColor.class).each(function() {\n\t\t\t\tvar element = {\n\t\t\t\t\telement: $(this),\n\t\t\t\t\toffsetTop: $(this).offset().top,\n\t\t\t\t\tmenuColor: classAndColor.menuColor,\n\t\t\t\t};\n\t\t\t\tdigifixScrollSpy.elementsWithBackgroundColor.push(element);\n\t\t\t});\n\t\t});\n\t\t/* Order the array of elements by offsetTop, so that they are looped over from the top-most element to the bottom-most */\n\t\tdigifixScrollSpy.elementsWithBackgroundColor.sort((a, b) => {\n\t\t\tif (a.offsetTop > b.offsetTop) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\treturn -1;\n\t\t});\n\t}\n\thandleMenuColorOnScroll() {\n\t\tvar lastElement = false;\n\t\tdigifixScrollSpy.elementsWithBackgroundColor.forEach((item) => {\n\t\t\tif (digifixScrollSpy.variables.scrollPosition + 50 >= item.offsetTop) {\n\t\t\t\tlastElement = item;\n\t\t\t}\n\t\t});\n\t\tif (lastElement) {\n\t\t\tvar menuClass = 'menu-' + lastElement.menuColor;\n\t\t\tif (!$('#page').hasClass(menuClass)) {\n\t\t\t\t$('#page').removeClass('menu-dark');\n\t\t\t\t$('#page').removeClass('menu-light');\n\t\t\t\t$('#page').addClass(menuClass);\n\t\t\t}\n\t\t} else {\n\t\t\t$('#page').addClass('menu-dark');\n\t\t}\n\t}\n}\n\nwindow.addEventListener('load', () => {\n\twindow.digifixScrollSpy = new DigifixScrollSpy();\n\twindow.digifixScrollSpy.init();\n});\n","import lottie from 'lottie-web';\n\nclass DigifixBodymovin {\n\tconstructor() {\n\t\tthis.animations = document.querySelectorAll('[data-bodymovin-file]');\n\t\tthis.animatedElements = [];\n\t\tthis.isPlayingReverse = false;\n\t}\n\tisGutenberg() {\n\t\treturn typeof wp !== 'undefined' && typeof wp.blocks !== 'undefined';\n\t}\n\tinit() {\n\t\tthis.animations = document.querySelectorAll('[data-bodymovin-file]');\n\t\tif (!this.animations.length) {\n\t\t\treturn;\n\t\t}\n\t\tthis.animations.forEach((animation) => {\n\t\t\tvar animationPath = animation.getAttribute('data-bodymovin-file');\n\t\t\tif (!animationPath) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar loop = false;\n\t\t\tif (animation.getAttribute('data-bodymovin-loop') == 'true') {\n\t\t\t\tloop = true;\n\t\t\t}\n\n\t\t\tvar animatedElement = lottie.loadAnimation({\n\t\t\t\tcontainer: animation,\n\t\t\t\trenderer: 'svg',\n\t\t\t\tloop: loop,\n\t\t\t\tautoplay: true,\n\t\t\t\tpath: animationPath,\n\t\t\t});\n\t\t\t/*\n\t\t\tif (loop) {\n\t\t\t\tanimatedElement.addEventListener('complete', function() {\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tanimatedElement.goToAndPlay(0);\n\t\t\t\t\t}, 4000);\n\t\t\t\t});\n\t\t\t}\n */\n\n\t\t\tthis.animatedElements.push(animatedElement);\n\n\t\t\t/* When the user scrolls down, reverse the Bodymovin animation. When they scroll up, play it forwards again */\n\t\t\twindow.addEventListener('scroll', () => {\n\t\t\t\t/* Don't use this functionality if the animation loops */\n\t\t\t\tif (loop) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar scrollDirection = 'down';\n\t\t\t\tif (document.querySelector('body').classList.contains('scroll-up')) {\n\t\t\t\t\tscrollDirection = 'up';\n\t\t\t\t}\n\n\t\t\t\tif (scrollDirection == 'down') {\n\t\t\t\t\tif (window.DigifixBodymovin.isPlayingReverse) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\twindow.DigifixBodymovin.isPlayingReverse = true;\n\t\t\t\t\tanimatedElement.setDirection(-1);\n\t\t\t\t\tanimatedElement.play();\n\t\t\t\t}\n\n\t\t\t\tif (scrollDirection == 'up') {\n\t\t\t\t\twindow.DigifixBodymovin.isPlayingReverse = false;\n\t\t\t\t\tanimatedElement.setDirection(1);\n\t\t\t\t\tanimatedElement.play();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n}\nwindow.addEventListener('load', () => {\n\twindow.DigifixBodymovin = new DigifixBodymovin();\n\twindow.DigifixBodymovin.init();\n\n\t/* Re-init the Javascript functionality if the block is re-rendered in the Gutenberg editor */\n\tif (window.acf) {\n\t\twindow.acf.addAction('render_block_preview/type=video-header', function($elem, blockDetails) {\n\t\t\twindow.DigifixBodymovin.init();\n\t\t});\n\t}\n});\n"],"sourceRoot":""}