{"version":3,"file":"static/js/main.8ee26758.js","mappings":"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","sources":["../node_modules/classnames/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../../../../node_modules/babel-runtime/core-js/object/assign.js","../../../../node_modules/babel-runtime/core-js/object/create.js","../../../../node_modules/babel-runtime/core-js/object/define-property.js","../../../../node_modules/babel-runtime/core-js/object/get-prototype-of.js","../../../../node_modules/babel-runtime/core-js/object/set-prototype-of.js","../../../../node_modules/babel-runtime/core-js/symbol.js","../../../../node_modules/babel-runtime/core-js/symbol/iterator.js","../../../../node_modules/babel-runtime/helpers/classCallCheck.js","../../../../node_modules/babel-runtime/helpers/createClass.js","../../../../node_modules/babel-runtime/helpers/extends.js","../../../../node_modules/babel-runtime/helpers/inherits.js","../../../../node_modules/babel-runtime/helpers/possibleConstructorReturn.js","../../../../node_modules/babel-runtime/helpers/typeof.js","../../../../node_modules/core-js/library/fn/object/assign.js","../../../../node_modules/core-js/library/fn/object/create.js","../../../../node_modules/core-js/library/fn/object/define-property.js","../../../../node_modules/core-js/library/fn/object/get-prototype-of.js","../../../../node_modules/core-js/library/fn/object/set-prototype-of.js","../../../../node_modules/core-js/library/fn/symbol/index.js","../../../../node_modules/core-js/library/fn/symbol/iterator.js","../../../../node_modules/core-js/library/modules/_a-function.js","../../../../node_modules/core-js/library/modules/_add-to-unscopables.js","../../../../node_modules/core-js/library/modules/_an-object.js","../../../../node_modules/core-js/library/modules/_array-includes.js","../../../../node_modules/core-js/library/modules/_cof.js","../../../../node_modules/core-js/library/modules/_core.js","../../../../node_modules/core-js/library/modules/_ctx.js","../../../../node_modules/core-js/library/modules/_defined.js","../../../../node_modules/core-js/library/modules/_descriptors.js","../../../../node_modules/core-js/library/modules/_dom-create.js","../../../../node_modules/core-js/library/modules/_enum-bug-keys.js","../../../../node_modules/core-js/library/modules/_enum-keys.js","../../../../node_modules/core-js/library/modules/_export.js","../../../../node_modules/core-js/library/modules/_fails.js","../../../../node_modules/core-js/library/modules/_global.js","../../../../node_modules/core-js/library/modules/_has.js","../../../../node_modules/core-js/library/modules/_hide.js","../../../../node_modules/core-js/library/modules/_html.js","../../../../node_modules/core-js/library/modules/_ie8-dom-define.js","../../../../node_modules/core-js/library/modules/_iobject.js","../../../../node_modules/core-js/library/modules/_is-array.js","../../../../node_modules/core-js/library/modules/_is-object.js","../../../../node_modules/core-js/library/modules/_iter-create.js","../../../../node_modules/core-js/library/modules/_iter-define.js","../../../../node_modules/core-js/library/modules/_iter-step.js","../../../../node_modules/core-js/library/modules/_iterators.js","../../../../node_modules/core-js/library/modules/_library.js","../../../../node_modules/core-js/library/modules/_meta.js","../../../../node_modules/core-js/library/modules/_object-assign.js","../../../../node_modules/core-js/library/modules/_object-create.js","../../../../node_modules/core-js/library/modules/_object-dp.js","../../../../node_modules/core-js/library/modules/_object-dps.js","../../../../node_modules/core-js/library/modules/_object-gopd.js","../../../../node_modules/core-js/library/modules/_object-gopn-ext.js","../../../../node_modules/core-js/library/modules/_object-gopn.js","../../../../node_modules/core-js/library/modules/_object-gops.js","../../../../node_modules/core-js/library/modules/_object-gpo.js","../../../../node_modules/core-js/library/modules/_object-keys-internal.js","../../../../node_modules/core-js/library/modules/_object-keys.js","../../../../node_modules/core-js/library/modules/_object-pie.js","../../../../node_modules/core-js/library/modules/_object-sap.js","../../../../node_modules/core-js/library/modules/_property-desc.js","../../../../node_modules/core-js/library/modules/_redefine.js","../../../../node_modules/core-js/library/modules/_set-proto.js","../../../../node_modules/core-js/library/modules/_set-to-string-tag.js","../../../../node_modules/core-js/library/modules/_shared-key.js","../../../../node_modules/core-js/library/modules/_shared.js","../../../../node_modules/core-js/library/modules/_string-at.js","../../../../node_modules/core-js/library/modules/_to-absolute-index.js","../../../../node_modules/core-js/library/modules/_to-integer.js","../../../../node_modules/core-js/library/modules/_to-iobject.js","../../../../node_modules/core-js/library/modules/_to-length.js","../../../../node_modules/core-js/library/modules/_to-object.js","../../../../node_modules/core-js/library/modules/_to-primitive.js","../../../../node_modules/core-js/library/modules/_uid.js","../../../../node_modules/core-js/library/modules/_wks-define.js","../../../../node_modules/core-js/library/modules/_wks-ext.js","../../../../node_modules/core-js/library/modules/_wks.js","../../../../node_modules/core-js/library/modules/es6.array.iterator.js","../../../../node_modules/core-js/library/modules/es6.object.assign.js","../../../../node_modules/core-js/library/modules/es6.object.create.js","../../../../node_modules/core-js/library/modules/es6.object.define-property.js","../../../../node_modules/core-js/library/modules/es6.object.get-prototype-of.js","../../../../node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../../../../node_modules/core-js/library/modules/es6.string.iterator.js","../../../../node_modules/core-js/library/modules/es6.symbol.js","../../../../node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../../../../node_modules/core-js/library/modules/es7.symbol.observable.js","../../../../node_modules/core-js/library/modules/web.dom.iterable.js","../../../../node_modules/lottie-web/build/player/lottie.js","../../../../node_modules/react-lottie/dist/index.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/Button.js","components/LottieControl/LottieControl.tsx","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","App.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":["/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ba=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function q(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new q(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new q(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new q(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new q(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new q(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new q(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new q(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new q(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new q(a,5,!1,a.toLowerCase(),null,!1,!1)});var pa=/[\\-:]([a-z])/g;function qa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(pa,\nqa);z[b]=new q(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(pa,qa);z[b]=new q(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(pa,qa);z[b]=new q(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new q(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new q(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new q(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ra(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{La=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ka(a):\"\"}\nfunction Na(a){switch(a.tag){case 5:return Ka(a.type);case 16:return Ka(\"Lazy\");case 13:return Ka(\"Suspense\");case 19:return Ka(\"SuspenseList\");case 0:case 2:case 15:return a=Ma(a.type,!1),a;case 11:return a=Ma(a.type.render,!1),a;case 1:return a=Ma(a.type,!0),a;default:return\"\"}}\nfunction Oa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case va:return\"Fragment\";case ua:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ca:return\"Suspense\";case Da:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Aa:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Ba:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ea:return b=a.displayName||null,null!==b?b:Oa(a.type)||\"Memo\";case Fa:b=a._payload;a=a._init;try{return Oa(a(b))}catch(c){}}return null}\nfunction Pa(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Oa(b);case 8:return b===wa?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Qa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ra(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Sa(a){var b=Ra(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Ta(a){a._valueTracker||(a._valueTracker=Sa(a))}function Ua(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ra(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Va(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Wa(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Xa(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Qa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function Ya(a,b){b=b.checked;null!=b&&ra(a,\"checked\",b,!1)}\nfunction Za(a,b){Ya(a,b);var c=Qa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?$a(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&$a(a,b.type,Qa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction ab(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction $a(a,b,c){if(\"number\"!==b||Va(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var bb=Array.isArray;\nfunction cb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=jb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction lb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar mb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},nb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(mb).forEach(function(a){nb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);mb[b]=mb[a]})});function ob(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||mb.hasOwnProperty(a)&&mb[a]?(\"\"+b).trim():b+\"px\"}\nfunction pb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=ob(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var qb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction rb(a,b){if(b){if(qb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction sb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var tb=null;function ub(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var vb=null,wb=null,xb=null;\nfunction yb(a){if(a=zb(a)){if(\"function\"!==typeof vb)throw Error(p(280));var b=a.stateNode;b&&(b=Ab(b),vb(a.stateNode,a.type,b))}}function Bb(a){wb?xb?xb.push(a):xb=[a]:wb=a}function Cb(){if(wb){var a=wb,b=xb;xb=wb=null;yb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(mc(a)/nc|0)|0}var oc=64,pc=4194304;\nfunction qc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function rc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=qc(h):(f&=g,0!==f&&(d=qc(f)))}else g=c&~e,0!==g?d=qc(g):0!==f&&(d=qc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}function wc(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-lc(b);a[b]=c}\nfunction xc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=Xd),$d=String.fromCharCode(32),ae=!1;\nfunction be(a,b){switch(a){case \"keyup\":return-1!==Vd.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function ce(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var de=!1;function ee(a,b){switch(a){case \"compositionend\":return ce(b);case \"keypress\":if(32!==b.which)return null;ae=!0;return $d;case \"textInput\":return a=b.data,a===$d&&ae?null:a;default:return null}}\nfunction fe(a,b){if(de)return\"compositionend\"===a||!Wd&&be(a,b)?(a=id(),hd=gd=fd=null,de=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ee(c)}}function Ge(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Ge(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction He(){for(var a=window,b=Va();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Va(a.document)}return b}function Ie(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Je(a){var b=He(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Ge(c.ownerDocument.documentElement,c)){if(null!==d&&Ie(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Fe(c,f);var g=Fe(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Le=null,Me=null,Ne=null,Oe=!1;\nfunction Pe(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Oe||null==Le||Le!==Va(d)||(d=Le,\"selectionStart\"in d&&Ie(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Ne&&De(Ne,d)||(Ne=d,d=je(Me,\"onSelect\"),0Nf||(a.current=Mf[Nf],Mf[Nf]=null,Nf--)}function H(a,b){Nf++;Mf[Nf]=a.current;a.current=b}var Pf={},I=Of(Pf),Qf=Of(!1),Rf=Pf;function Sf(a,b){var c=a.type.contextTypes;if(!c)return Pf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Tf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Uf(){G(Qf);G(I)}function Vf(a,b,c){if(I.current!==Pf)throw Error(p(168));H(I,b);H(Qf,c)}function Wf(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Pa(a)||\"Unknown\",e));return A({},c,d)}\nfunction Xf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Pf;Rf=I.current;H(I,a);H(Qf,Qf.current);return!0}function Yf(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=Wf(a,b,Rf),d.__reactInternalMemoizedMergedChildContext=a,G(Qf),G(I),H(I,a)):G(Qf);H(Qf,c)}var Zf=null,$f=!1,ag=!1;function bg(a){null===Zf?Zf=[a]:Zf.push(a)}function cg(a){$f=!0;bg(a)}\nfunction dg(){if(!ag&&null!==Zf){ag=!0;var a=0,b=E;try{var c=Zf;for(E=1;a>=g;e-=g;Rg=1<<32-lc(b)+e|c<r?(x=m,m=null):x=m.sibling;var t=u(e,m,h[r],k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,r);null===n?l=t:n.sibling=t;n=t;m=x}if(r===h.length)return c(e,m),N&&Tg(e,r),l;if(null===m){for(;rr?(x=n,n=null):x=n.sibling;var v=u(e,n,t.value,k);if(null===v){null===n&&(n=x);break}a&&n&&null===v.alternate&&b(e,n);g=f(v,g,r);null===m?l=v:m.sibling=v;m=v;n=x}if(t.done)return c(e,\nn),N&&Tg(e,r),l;if(null===n){for(;!t.done;r++,t=h.next())t=w(e,t.value,k),null!==t&&(g=f(t,g,r),null===m?l=t:m.sibling=t,m=t);N&&Tg(e,r);return l}for(n=d(e,n);!t.done;r++,t=h.next())t=y(n,e,r,t.value,k),null!==t&&(a&&null!==t.alternate&&n.delete(null===t.key?r:t.key),g=f(t,g,r),null===m?l=t:m.sibling=t,m=t);a&&n.forEach(function(a){return b(e,a)});N&&Tg(e,r);return l}function C(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===va&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case ta:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===va){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Fa&&kh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=ih(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===va?(d=qh(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=oh(f.type,f.key,f.props,null,a.mode,h),h.ref=ih(a,d,f),h.return=a,a=h)}return g(a);case ua:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=ph(f,a.mode,h);d.return=a;a=d}return g(a);case Fa:return l=f._init,C(a,d,l(f._payload),h)}if(bb(f))return n(a,d,f,h);if(Ia(f))return v(a,d,f,h);jh(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=nh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return C}var rh=lh(!0),sh=lh(!1),th={},uh=Of(th),vh=Of(th),wh=Of(th);function xh(a){if(a===th)throw Error(p(174));return a}function yh(a,b){H(wh,b);H(vh,a);H(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:ib(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=ib(b,a)}G(uh);H(uh,b)}function zh(){G(uh);G(vh);G(wh)}\nfunction Ah(a){xh(wh.current);var b=xh(uh.current);var c=ib(b,a.type);b!==c&&(H(vh,a),H(uh,c))}function Bh(a){vh.current===a&&(G(uh),G(vh))}var P=Of(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;ac?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{E=c,Gh.transition=d}}function ti(){return Uh().memoizedState}function ui(a,b,c){var d=Dg(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};vi(a)?wi(b,c):(xi(a,b,c),c=M(),a=Eg(a,d,c),null!==a&&yi(a,b,d))}\nfunction gi(a,b,c){var d=Dg(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(vi(a))wi(b,e);else{xi(a,b,e);var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(Ce(h,g))return}catch(k){}finally{}c=M();a=Eg(a,d,c);null!==a&&yi(a,b,d)}}function vi(a){var b=a.alternate;return a===Q||null!==b&&b===Q}\nfunction wi(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function xi(a,b,c){null!==J&&0!==(a.mode&1)&&0===(K&2)?(a=b.interleaved,null===a?(c.next=c,null===qg?qg=[b]:qg.push(b)):(c.next=a.next,a.next=c),b.interleaved=c):(a=b.pending,null===a?c.next=c:(c.next=a.next,a.next=c),b.pending=c)}function yi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;yc(a,c)}}\nvar Rh={readContext:pg,useCallback:U,useContext:U,useEffect:U,useImperativeHandle:U,useInsertionEffect:U,useLayoutEffect:U,useMemo:U,useReducer:U,useRef:U,useState:U,useDebugValue:U,useDeferredValue:U,useTransition:U,useMutableSource:U,useSyncExternalStore:U,useId:U,unstable_isNewReconciler:!1},Oh={readContext:pg,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:pg,useEffect:ki,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ii(4194308,\n4,ni.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ii(4194308,4,a,b)},useInsertionEffect:function(a,b){return ii(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=ui.bind(null,Q,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:fi,useDebugValue:pi,useDeferredValue:function(a){var b=fi(a),c=b[0],d=b[1];ki(function(){var b=Gh.transition;Gh.transition={};try{d(a)}finally{Gh.transition=b}},[a]);return c},useTransition:function(){var a=fi(!1),b=a[0];a=si.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=Q,e=Th();if(N){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===J)throw Error(p(349));\n0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;ki(ai.bind(null,d,f,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=J.identifierPrefix;if(N){var c=Sg;var d=Rg;c=(d&~(1<<32-lc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):\n(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[If]=b;a[Jf]=d;Li(a,b,!1,!1);b.stateNode=a;a:{g=sb(c,d);switch(c){case \"dialog\":F(\"cancel\",a);F(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":F(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eTi&&(b.flags|=128,d=!0,Pi(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,\nnull!==c&&(b.updateQueue=c,b.flags|=4),Pi(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!N)return V(b),null}else 2*D()-f.renderingStartTime>Ti&&1073741824!==c&&(b.flags|=128,d=!0,Pi(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=b,f.tail=b.sibling,f.renderingStartTime=D(),b.sibling=null,c=P.current,H(P,d?c&1|2:c&1),b;V(b);return null;case 22:case 23:return Ui(),d=null!==\nb.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(Vi&1073741824)&&(V(b),b.subtreeFlags&6&&(b.flags|=8192)):V(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}var Wi=sa.ReactCurrentOwner,og=!1;function Xi(a,b,c,d){b.child=null===a?sh(b,null,c,d):rh(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ng(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!og)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);N&&c&&Vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=oh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:De;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=mh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a&&De(a.memoizedProps,d)&&a.ref===b.ref)if(og=!1,0!==(a.lanes&e))0!==(a.flags&131072)&&(og=!0);else return b.lanes=a.lanes,Zi(a,b,e);return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null},H(ej,Vi),Vi|=c;else if(0!==(c&1073741824))b.memoizedState={baseLanes:0,cachePool:null},d=null!==f?f.baseLanes:c,H(ej,Vi),Vi|=d;else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null},b.updateQueue=null,H(ej,Vi),Vi|=a,null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):\nd=c,H(ej,Vi),Vi|=d;Xi(a,b,e,c);return b.child}function fj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Tf(c)?Rf:I.current;f=Sf(b,f);ng(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!og)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);N&&d&&Vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction gj(a,b,c,d,e){if(Tf(c)){var f=!0;Xf(b)}else f=!1;ng(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Hg(b,c,d),Jg(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=pg(l):(l=Tf(c)?Rf:I.current,l=Sf(b,l));var m=c.getDerivedStateFromProps,w=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;w||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Ig(b,g,d,l);rg=!1;var u=b.memoizedState;g.state=u;yg(b,d,g,e);k=b.memoizedState;h!==d||u!==k||Qf.current||rg?(\"function\"===typeof m&&(Cg(b,c,m,d),k=b.memoizedState),(h=rg||Gg(b,c,h,d,u,k,l))?(w||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4194308)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;tg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:fg(b.type,h);g.props=l;w=b.pendingProps;u=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=pg(k):(k=Tf(c)?Rf:I.current,k=Sf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===\ntypeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==w||u!==k)&&Ig(b,g,d,k);rg=!1;u=b.memoizedState;g.state=u;yg(b,d,g,e);var n=b.memoizedState;h!==w||u!==n||Qf.current||rg?(\"function\"===typeof y&&(Cg(b,c,y,d),n=b.memoizedState),(l=rg||Gg(b,c,l,d,u,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&\ng.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=\nk,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=1024),d=!1)}return hj(a,b,c,d,f,e)}\nfunction hj(a,b,c,d,e,f){fj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&Yf(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=rh(b,a.child,null,f),b.child=rh(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&Yf(b,c,!0);return b.child}function ij(a){var b=a.stateNode;b.pendingContext?Vf(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Vf(a,b.context,!1);yh(a,b.containerInfo)}\nfunction jj(a,b,c,d,e){gh();hh(e);b.flags|=256;Xi(a,b,c,d);return b.child}var kj={dehydrated:null,treeContext:null,retryLane:0};function lj(a){return{baseLanes:a,cachePool:null}}\nfunction mj(a,b,c){var d=b.pendingProps,e=P.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;H(P,e&1);if(null===a){dh(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;e=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,e={mode:\"hidden\",children:e},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ne):f=nj(e,d,0,null),a=qh(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=lj(c),b.memoizedState=kj,a):oj(b,e)}e=a.memoizedState;if(null!==e){h=e.dehydrated;if(null!==h){if(g){if(b.flags&256)return b.flags&=-257,pj(a,b,c,Error(p(422)));if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=nj({mode:\"visible\",children:d.children},e,0,null);f=qh(f,e,c,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&rh(b,a.child,\nnull,c);b.child.memoizedState=lj(c);b.memoizedState=kj;return f}if(0===(b.mode&1))b=pj(a,b,c,null);else if(\"$!\"===h.data)b=pj(a,b,c,Error(p(419)));else if(d=0!==(c&a.childLanes),og||d){d=J;if(null!==d){switch(c&-c){case 4:f=2;break;case 16:f=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:f=32;break;case 536870912:f=\n268435456;break;default:f=0}d=0!==(f&(d.suspendedLanes|c))?0:f;0!==d&&d!==e.retryLane&&(e.retryLane=d,Eg(a,d,-1))}Si();b=pj(a,b,c,Error(p(421)))}else\"$?\"===h.data?(b.flags|=128,b.child=a.child,b=qj.bind(null,a),h._reactRetry=b,b=null):(c=e.treeContext,Yg=Ff(h.nextSibling),Xg=b,N=!0,Zg=null,null!==c&&(Og[Pg++]=Rg,Og[Pg++]=Sg,Og[Pg++]=Qg,Rg=c.id,Sg=c.overflow,Qg=b),b=oj(b,b.pendingProps.children),b.flags|=4096);return b}if(f)return d=rj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,\nf.memoizedState=null===e?lj(c):{baseLanes:e.baseLanes|c,cachePool:null},f.childLanes=a.childLanes&~c,b.memoizedState=kj,d;c=sj(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=rj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?lj(c):{baseLanes:e.baseLanes|c,cachePool:null},f.childLanes=a.childLanes&~c,b.memoizedState=kj,d;c=sj(a,b,d.children,c);b.memoizedState=null;return c}\nfunction oj(a,b){b=nj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){var e=a.child;a=e.sibling;c=mh(e,{mode:\"visible\",children:c});0===(b.mode&1)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(d=b.deletions,null===d?(b.deletions=[a],b.flags|=16):d.push(a));return b.child=c}\nfunction rj(a,b,c,d,e){var f=b.mode;a=a.child;var g=a.sibling,h={mode:\"hidden\",children:c};0===(f&1)&&b.child!==a?(c=b.child,c.childLanes=0,c.pendingProps=h,b.deletions=null):(c=mh(a,h),c.subtreeFlags=a.subtreeFlags&14680064);null!==g?d=mh(g,d):(d=qh(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function pj(a,b,c,d){null!==d&&hh(d);rh(b,a.child,null,c);a=oj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction tj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);mg(a.return,b,c)}function uj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction vj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=P.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&tj(a,c,b);else if(19===a.tag)tj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}H(P,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);uj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}uj(b,!0,c,null,f);break;case \"together\":uj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);zg|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=mh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=mh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction wj(a,b,c){switch(b.tag){case 3:ij(b);gh();break;case 5:Ah(b);break;case 1:Tf(b.type)&&Xf(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;H(gg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return H(P,P.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return mj(a,b,c);H(P,P.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}H(P,P.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return vj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);H(P,P.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}\nfunction xj(a,b){Wg(b);switch(b.tag){case 1:return Tf(b.type)&&Uf(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),G(Qf),G(I),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:G(P);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));gh()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return G(P),null;case 4:return zh(),null;case 10:return lg(b.type._context),null;case 22:case 23:return Ui(),\nnull;case 24:return null;default:return null}}var yj=!1,zj=!1,Aj=\"function\"===typeof WeakSet?WeakSet:Set,X=null;function Bj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){Cj(a,b,d)}else c.current=null}function Dj(a,b,c){try{c()}catch(d){Cj(a,b,d)}}var Ej=!1;\nfunction Fj(a,b){a=He();if(Ie(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(O){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,w=a,u=null;b:for(;;){for(var y;;){w!==c||0!==e&&3!==w.nodeType||(h=g+e);w!==f||0!==d&&3!==w.nodeType||(k=g+d);3===w.nodeType&&(g+=w.nodeValue.length);\nif(null===(y=w.firstChild))break;u=w;w=y}for(;;){if(w===a)break b;u===c&&++l===e&&(h=g);u===f&&++m===d&&(k=g);if(null!==(y=w.nextSibling))break;w=u;u=w.parentNode}w=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;xf={focusedElem:a,selectionRange:c};for(X=b;null!==X;)if(b=X,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,X=a;else for(;null!==X;){b=X;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;case 1:if(null!==\nn){var v=n.memoizedProps,C=n.memoizedState,t=b.stateNode,r=t.getSnapshotBeforeUpdate(b.elementType===b.type?v:fg(b.type,v),C);t.__reactInternalSnapshotBeforeUpdate=r}break;case 3:var x=b.stateNode.containerInfo;if(1===x.nodeType)x.textContent=\"\";else if(9===x.nodeType){var B=x.body;null!=B&&(B.textContent=\"\")}break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(O){Cj(b,b.return,O)}a=b.sibling;if(null!==a){a.return=b.return;X=a;break}X=b.return}n=Ej;Ej=!1;return n}\nfunction Gj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Dj(b,c,f)}e=e.next}while(e!==d)}}function Hj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Ij(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Jj(a,b,c){if(ic&&\"function\"===typeof ic.onCommitFiberUnmount)try{ic.onCommitFiberUnmount(hc,b)}catch(g){}switch(b.tag){case 0:case 11:case 14:case 15:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var d=a=a.next;do{var e=d,f=e.destroy;e=e.tag;void 0!==f&&(0!==(e&2)?Dj(b,c,f):0!==(e&4)&&Dj(b,c,f));d=d.next}while(d!==a)}break;case 1:Bj(b,c);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(g){Cj(b,\nc,g)}break;case 5:Bj(b,c);break;case 4:Kj(a,b,c)}}function Lj(a){var b=a.alternate;null!==b&&(a.alternate=null,Lj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[If],delete b[Jf],delete b[jf],delete b[Kf],delete b[Lf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Mj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Nj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Mj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Oj(a){a:{for(var b=a.return;null!==b;){if(Mj(b))break a;b=b.return}throw Error(p(160));}var c=b;switch(c.tag){case 5:b=c.stateNode;c.flags&32&&(lb(b,\"\"),c.flags&=-33);c=Nj(a);Pj(a,c,b);break;case 3:case 4:b=c.stateNode.containerInfo;c=Nj(a);Qj(a,c,b);break;default:throw Error(p(161));}}\nfunction Qj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=wf));else if(4!==d&&(a=a.child,null!==a))for(Qj(a,b,c),a=a.sibling;null!==a;)Qj(a,b,c),a=a.sibling}\nfunction Pj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Pj(a,b,c),a=a.sibling;null!==a;)Pj(a,b,c),a=a.sibling}\nfunction Kj(a,b,c){for(var d=b,e=!1,f,g;;){if(!e){e=d.return;a:for(;;){if(null===e)throw Error(p(160));f=e.stateNode;switch(e.tag){case 5:g=!1;break a;case 3:f=f.containerInfo;g=!0;break a;case 4:f=f.containerInfo;g=!0;break a}e=e.return}e=!0}if(5===d.tag||6===d.tag){a:for(var h=a,k=d,l=c,m=k;;)if(Jj(h,m,l),null!==m.child&&4!==m.tag)m.child.return=m,m=m.child;else{if(m===k)break a;for(;null===m.sibling;){if(null===m.return||m.return===k)break a;m=m.return}m.sibling.return=m.return;m=m.sibling}g?(h=\nf,k=d.stateNode,8===h.nodeType?h.parentNode.removeChild(k):h.removeChild(k)):f.removeChild(d.stateNode)}else if(18===d.tag)g?(h=f,k=d.stateNode,8===h.nodeType?Ef(h.parentNode,k):1===h.nodeType&&Ef(h,k),Yc(h)):Ef(f,d.stateNode);else if(4===d.tag){if(null!==d.child){f=d.stateNode.containerInfo;g=!0;d.child.return=d;d=d.child;continue}}else if(Jj(a,d,c),null!==d.child){d.child.return=d;d=d.child;continue}if(d===b)break;for(;null===d.sibling;){if(null===d.return||d.return===b)return;d=d.return;4===d.tag&&\n(e=!1)}d.sibling.return=d.return;d=d.sibling}}\nfunction Rj(a,b){switch(b.tag){case 0:case 11:case 14:case 15:Gj(3,b,b.return);Hj(3,b);Gj(5,b,b.return);return;case 1:return;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps,e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){\"input\"===a&&\"radio\"===d.type&&null!=d.name&&Ya(c,d);sb(a,e);b=sb(a,d);for(e=0;ee&&(e=g);d&=~f}d=e;d=D()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bk(d/1960))-d;if(10a?16:a;if(null===lk)var d=!1;else{a=lk;lk=null;mk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(X=a.current;null!==X;){var f=X,g=f.child;if(0!==(X.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kD()-Vj?Ak(a,0):hk|=c);tk(a,b)}function Ok(a,b){0===b&&(0===(a.mode&1)?b=1:(b=pc,pc<<=1,0===(pc&130023424)&&(pc=4194304)));var c=M();a=rk(a,b);null!==a&&(wc(a,b,c),tk(a,c))}function qj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Ok(a,c)}\nfunction Tj(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Ok(a,c)}var Lk;\nLk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Qf.current)og=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return og=!1,wj(a,b,c);og=0!==(a.flags&131072)?!0:!1}else og=!1,N&&0!==(b.flags&1048576)&&Ug(b,Ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;var e=Sf(b,I.current);ng(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?\n(b.tag=1,b.memoizedState=null,b.updateQueue=null,Tf(d)?(f=!0,Xf(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,sg(b),e.updater=Fg,b.stateNode=e,e._reactInternals=b,Jg(b,d,a,c),b=hj(null,b,d,!0,f,c)):(b.tag=0,N&&f&&Vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Pk(d);a=fg(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=gj(null,b,\nd,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,fg(d.type,a),c);break a}throw Error(p(306,d,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),gj(a,b,d,e,c);case 3:a:{ij(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;tg(a,b);yg(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,\ncache:g.cache,transitions:g.transitions},b.updateQueue.baseState=f,b.memoizedState=f,b.flags&256){e=Error(p(423));b=jj(a,b,d,c,e);break a}else if(d!==e){e=Error(p(424));b=jj(a,b,d,c,e);break a}else for(Yg=Ff(b.stateNode.containerInfo.firstChild),Xg=b,N=!0,Zg=null,c=sh(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{gh();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&dh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,\nyf(d,e)?g=null:null!==f&&yf(d,f)&&(b.flags|=32),fj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&dh(b),null;case 13:return mj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=rh(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=\nb.type._context;e=b.pendingProps;f=b.memoizedProps;g=e.value;H(gg,d._currentValue);d._currentValue=g;if(null!==f)if(Ce(f.value,g)){if(f.children===e.children&&!Qf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ug(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=\nc;k=f.alternate;null!==k&&(k.lanes|=c);mg(f.return,c,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);mg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,\nng(b,c),e=pg(e),d=d(e),b.flags|=1,Xi(a,b,d,c),b.child;case 14:return d=b.type,e=fg(d,b.pendingProps),e=fg(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Tf(d)?(a=!0,Xf(b)):a=!1,ng(b,c),Hg(b,d,e),Jg(b,d,e,c),hj(null,b,d,!0,a,c);case 19:return vj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function vk(a,b){return Yb(a,b)}\nfunction Qk(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function ah(a,b,c,d){return new Qk(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Pk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Ba)return 11;if(a===Ea)return 14}return 2}\nfunction mh(a,b){var c=a.alternate;null===c?(c=ah(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction oh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case va:return qh(c.children,e,f,b);case wa:g=8;e|=8;break;case xa:return a=ah(12,c,b,e|2),a.elementType=xa,a.lanes=f,a;case Ca:return a=ah(13,c,b,e),a.elementType=Ca,a.lanes=f,a;case Da:return a=ah(19,c,b,e),a.elementType=Da,a.lanes=f,a;case Ga:return nj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case ya:g=10;break a;case Aa:g=9;break a;case Ba:g=11;\nbreak a;case Ea:g=14;break a;case Fa:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=ah(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function qh(a,b,c,d){a=ah(7,a,d,b);a.lanes=c;return a}function nj(a,b,c,d){a=ah(22,a,d,b);a.elementType=Ga;a.lanes=c;a.stateNode={};return a}function nh(a,b,c){a=ah(6,a,null,b);a.lanes=c;return a}\nfunction ph(a,b,c){b=ah(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction Rk(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=vc(0);this.expirationTimes=vc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=vc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function Sk(a,b,c,d,e,f,g,h,k){a=new Rk(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=ah(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null};sg(f);return a}function Tk(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function () { /* empty */ };\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = true;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = require('./_hide');\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var idPrefix = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.tt) {\n layers[i - 1].td = layerData.tt;\n }\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n xhr.open('GET', path, true);\n } catch (error) {\n xhr.open('GET', fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i]\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n this.setParams(params);\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function () {\n this.renderer.updateContainerSize();\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.renderer = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n case 'drawnFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var PropertyFactory = function () {\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n function getProp(elem, data, type, mult, container) {\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.9.1';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString;\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src.replace(/^[^\\?]+\\??/, ''); // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n if (!this.a.k) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n var zeroWidthJoiner = [65039, 8205];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(def, fontData) {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n var fontProps = getFontProperties(fontData);\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n var tCanvasHelper = createTag('canvas').getContext('2d');\n tCanvasHelper.font = fontData.fWeight + ' ' + fontData.fStyle + ' 100px ' + fontData.fFamily; // tCanvasHelper.font = ' 100px '+ fontData.fFamily;\n\n return tHelper;\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(defs, fontArr[i]);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName);\n\n var index = _char2.charCodeAt(0);\n\n if (!fontData.cache[index + 1]) {\n var tHelper = fontData.helper; // Canvas version\n // fontData.cache[index] = tHelper.measureText(char).width / 100;\n // SVG version\n // console.log(tHelper.getBBox().width)\n\n if (_char2 === ' ') {\n tHelper.textContent = '|' + _char2 + '|';\n var doubleSize = tHelper.getComputedTextLength();\n tHelper.textContent = '||';\n var singleSize = tHelper.getComputedTextLength();\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n } else {\n tHelper.textContent = _char2;\n fontData.cache[index + 1] = tHelper.getComputedTextLength() / 100;\n }\n }\n\n return fontData.cache[index + 1] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\n if (!secondCharCode) {\n return firstCharCode === zeroWidthJoiner[1];\n }\n\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isCombinedCharacter = isCombinedCharacter;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _prevValue;\n\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (stringValue !== _prevValue) {\n elem.textProperty.currentData.t = _prevValue;\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this.audio.volume(volumeValue);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _opMdf: false,\n mat: new Matrix()\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\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]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n return ob;\n }();\n\n function SVGTintFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', 'f1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', 'f2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n\n if (filterManager.effectElements[2].p.v !== 100 || filterManager.effectElements[2].p.k) {\n var feMerge = createNS('feMerge');\n filter.appendChild(feMerge);\n var feMergeNode;\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', 'SourceGraphic');\n feMerge.appendChild(feMergeNode);\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', 'f2');\n feMerge.appendChild(feMergeNode);\n }\n }\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.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');\n }\n };\n\n function SVGFillFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(elem, filterManager) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', 'f1');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB); // var opacity = this.filterManager.effectElements[2].p.v/100;\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');\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer');\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n }\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n }\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n }\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n feComponentTransfer = createNS('feComponentTransfer');\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager) {\n var filterSize = filterManager.container.globalData.renderConfig.filterSize;\n filter.setAttribute('x', filterSize.x);\n filter.setAttribute('y', filterSize.y);\n filter.setAttribute('width', filterSize.width);\n filter.setAttribute('height', filterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', 'drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', 'drop_shadow_1');\n feOffset.setAttribute('result', 'drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', 'drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', 'drop_shadow_3');\n feComposite.setAttribute('in2', 'drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', 'drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = createNS('feMerge');\n filter.appendChild(feMerge);\n var feMergeNode;\n feMergeNode = createNS('feMergeNode');\n feMerge.appendChild(feMergeNode);\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', 'SourceGraphic');\n this.feMergeNode = feMergeNode;\n this.feMerge = feMerge;\n this.originalNodeAdded = false;\n feMerge.appendChild(feMergeNode);\n }\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n /* 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 } */\n\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n var registeredEffects = {};\n\n function SVGEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem);\n\n if (registeredEffects[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (elem.data.ef[i].ty === 20) {\n count += 1;\n filterManager = new SVGTintFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 21) {\n count += 1;\n filterManager = new SVGFillFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 22) {\n filterManager = new SVGStrokeEffect(elem, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 23) {\n count += 1;\n filterManager = new SVGTritoneFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 24) {\n count += 1;\n filterManager = new SVGProLevelsFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 25) {\n count += 1;\n filterManager = new SVGDropShadowEffect(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 28) {\n // count += 1;\n filterManager = new SVGMatte3Effect(fil, elem.effectsManager.effectElements[i], elem);\n } else if (elem.data.ef[i].ty === 29) {\n count += 1;\n filterManager = new SVGGaussianBlurEffect(fil, elem.effectsManager.effectElements[i]);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n function registerEffect(id, effect, countsAsEffect) {\n registeredEffects[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n var filId;\n var fil;\n var gg;\n\n if (this.data.td) {\n if (this.data.td == 3 || this.data.td == 1) {\n // eslint-disable-line eqeqeq\n var masker = createNS('mask');\n masker.setAttribute('id', this.layerId);\n masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\n\n masker.appendChild(this.layerElement);\n layerElementParent = masker;\n this.globalData.defs.appendChild(masker); // This is only for IE and Edge when mask if of type alpha\n\n if (!featureSupport.maskType && this.data.td == 1) {\n // eslint-disable-line eqeqeq\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (this.data.td == 2) {\n // eslint-disable-line eqeqeq\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', this.layerId);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n // This solution doesn't work on Android when meta tag with viewport attribute is set\n\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); */\n /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n maskGrouper.appendChild(this.layerElement);\n layerElementParent = maskGrouper;\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._matMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var props;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n props = itemData.transformers[k].mProps.v.props;\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]);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n\n while (i < len) {\n charCode = text.charCodeAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n shouldCombine = false;\n } else {\n charactersArray.push(text.substr(i, 2));\n }\n\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\n shouldCombine = true;\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n shouldCombine = true;\n } else {\n charactersArray.push(text.charAt(i));\n }\n\n i += 1;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement;\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = charData.data;\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement);\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n if (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\n this.buildItem(pos - 1);\n this.addPendingElement(element);\n } else {\n element.setMatte(elements[pos - 1].layerId);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n element.setMatte(this.elements[i - 1].layerId);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function CVContextData() {\n this.saved = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n this.cO = 1;\n var i;\n var len = 15;\n this.savedOp = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = len;\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var currentSavedOp = this.savedOp;\n this.savedOp = createTypedArray('float32', newLength);\n this.savedOp.set(currentSavedOp);\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.cO = 1;\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n var props;\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n props = sequence.transforms[i].transform.mProps.v.props;\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]);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n function CVEffects() {}\n\n CVEffects.prototype.renderFrame = function () {};\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n this.canvasContext = this.globalData.canvasContext;\n this.renderableEffectsManager = new CVEffects(this);\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n ctx.lineWidth = currentStyle.wi;\n ctx.lineCap = currentStyle.lc;\n ctx.lineJoin = currentStyle.lj;\n ctx.miterLimit = currentStyle.ml || 0;\n } else {\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n ctx.stroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n ctx.fill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n this.globalData.renderer.save();\n this.globalData.renderer.ctxTransform(renderedLetter.p);\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n lastFill = renderedLetter.fc;\n ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.fillStyle = this.data.sc;\n ctx.fillRect(0, 0, this.data.sw, this.data.sh); //\n };\n\n function CanvasRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n return;\n }\n\n this.transformMat.cloneFromProps(props);\n var cProps = this.contextData.cTr.props;\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]); // 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]);\n\n this.contextData.cTr.cloneFromProps(this.transformMat.props);\n var trProps = this.contextData.cTr.props;\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n /* if(op === 1){\r\n return;\r\n } */\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n return;\n }\n\n this.contextData.cO *= op < 0 ? 0 : op;\n\n if (this.globalData.currentGlobalAlpha !== this.contextData.cO) {\n this.canvasContext.globalAlpha = this.contextData.cO;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n }\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.save();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.save();\n }\n\n var props = this.contextData.cTr.props;\n\n if (this.contextData._length <= this.contextData.cArrPos) {\n this.contextData.duplicate();\n }\n\n var i;\n var arr = this.contextData.saved[this.contextData.cArrPos];\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = props[i];\n }\n\n this.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\n this.contextData.cArrPos += 1;\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.restore();\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.cArrPos -= 1;\n var popped = this.contextData.saved[this.contextData.cArrPos];\n var i;\n var arr = this.contextData.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = popped[i];\n }\n\n this.canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\n popped = this.contextData.savedOp[this.contextData.cArrPos];\n this.contextData.cO = popped;\n\n if (this.globalData.currentGlobalAlpha !== popped) {\n this.canvasContext.globalAlpha = popped;\n this.globalData.currentGlobalAlpha = popped;\n }\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function () {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n this.animationItem.container.setAttribute('width', elementWidth * this.renderConfig.dpr);\n this.animationItem.container.setAttribute('height', elementHeight * this.renderConfig.dpr);\n } else {\n elementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;\n elementHeight = this.canvasContext.canvas.height * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n this.elements[i].destroy();\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$1(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n initialize$2(BMMath);\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof(a);\n\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath];\n return ob;\n }();\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect(20, SVGTintFilter, true);\n registerEffect(21, SVGFillFilter, true);\n registerEffect(22, SVGStrokeEffect, false);\n registerEffect(23, SVGTritoneFilter, true);\n registerEffect(24, SVGProLevelsFilter, true);\n registerEffect(25, SVGDropShadowEffect, true);\n registerEffect(28, SVGMatte3Effect, false);\n registerEffect(29, SVGGaussianBlurEffect, true);\n\n return lottie;\n\n}));\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _lottieWeb = require('lottie-web');\n\nvar _lottieWeb2 = _interopRequireDefault(_lottieWeb);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Lottie = function (_React$Component) {\n (0, _inherits3.default)(Lottie, _React$Component);\n\n function Lottie() {\n var _ref;\n\n var _temp, _this, _ret;\n\n (0, _classCallCheck3.default)(this, Lottie);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Lottie.__proto__ || (0, _getPrototypeOf2.default)(Lottie)).call.apply(_ref, [this].concat(args))), _this), _this.handleClickToPause = function () {\n // The pause() method is for handling pausing by passing a prop isPaused\n // This method is for handling the ability to pause by clicking on the animation\n if (_this.anim.isPaused) {\n _this.anim.play();\n } else {\n _this.anim.pause();\n }\n }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);\n }\n\n (0, _createClass3.default)(Lottie, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n options = _props.options,\n eventListeners = _props.eventListeners;\n var loop = options.loop,\n autoplay = options.autoplay,\n animationData = options.animationData,\n rendererSettings = options.rendererSettings,\n segments = options.segments;\n\n\n this.options = {\n container: this.el,\n renderer: 'svg',\n loop: loop !== false,\n autoplay: autoplay !== false,\n segments: segments !== false,\n animationData: animationData,\n rendererSettings: rendererSettings\n };\n\n this.options = (0, _extends3.default)({}, this.options, options);\n\n this.anim = _lottieWeb2.default.loadAnimation(this.options);\n this.registerEvents(eventListeners);\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps /* , nextState */) {\n /* Recreate the animation handle if the data is changed */\n if (this.options.animationData !== nextProps.options.animationData) {\n this.deRegisterEvents(this.props.eventListeners);\n this.destroy();\n this.options = (0, _extends3.default)({}, this.options, nextProps.options);\n this.anim = _lottieWeb2.default.loadAnimation(this.options);\n this.registerEvents(nextProps.eventListeners);\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isStopped) {\n this.stop();\n } else if (this.props.segments) {\n this.playSegments();\n } else {\n this.play();\n }\n\n this.pause();\n this.setSpeed();\n this.setDirection();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.deRegisterEvents(this.props.eventListeners);\n this.destroy();\n this.options.animationData = null;\n this.anim = null;\n }\n }, {\n key: 'setSpeed',\n value: function setSpeed() {\n this.anim.setSpeed(this.props.speed);\n }\n }, {\n key: 'setDirection',\n value: function setDirection() {\n this.anim.setDirection(this.props.direction);\n }\n }, {\n key: 'play',\n value: function play() {\n this.anim.play();\n }\n }, {\n key: 'playSegments',\n value: function playSegments() {\n this.anim.playSegments(this.props.segments);\n }\n }, {\n key: 'stop',\n value: function stop() {\n this.anim.stop();\n }\n }, {\n key: 'pause',\n value: function pause() {\n if (this.props.isPaused && !this.anim.isPaused) {\n this.anim.pause();\n } else if (!this.props.isPaused && this.anim.isPaused) {\n this.anim.pause();\n }\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.anim.destroy();\n }\n }, {\n key: 'registerEvents',\n value: function registerEvents(eventListeners) {\n var _this2 = this;\n\n eventListeners.forEach(function (eventListener) {\n _this2.anim.addEventListener(eventListener.eventName, eventListener.callback);\n });\n }\n }, {\n key: 'deRegisterEvents',\n value: function deRegisterEvents(eventListeners) {\n var _this3 = this;\n\n eventListeners.forEach(function (eventListener) {\n _this3.anim.removeEventListener(eventListener.eventName, eventListener.callback);\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _props2 = this.props,\n width = _props2.width,\n height = _props2.height,\n ariaRole = _props2.ariaRole,\n ariaLabel = _props2.ariaLabel,\n isClickToPauseDisabled = _props2.isClickToPauseDisabled,\n title = _props2.title;\n\n\n var getSize = function getSize(initial) {\n var size = void 0;\n\n if (typeof initial === 'number') {\n size = initial + 'px';\n } else {\n size = initial || '100%';\n }\n\n return size;\n };\n\n var lottieStyles = (0, _extends3.default)({\n width: getSize(width),\n height: getSize(height),\n overflow: 'hidden',\n margin: '0 auto',\n outline: 'none'\n }, this.props.style);\n\n var onClickHandler = isClickToPauseDisabled ? function () {\n return null;\n } : this.handleClickToPause;\n\n return (\n // Bug with eslint rules https://github.com/airbnb/javascript/issues/1374\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n _react2.default.createElement('div', {\n ref: function ref(c) {\n _this4.el = c;\n },\n style: lottieStyles,\n onClick: onClickHandler,\n title: title,\n role: ariaRole,\n 'aria-label': ariaLabel,\n tabIndex: '0'\n })\n );\n }\n }]);\n return Lottie;\n}(_react2.default.Component);\n\nexports.default = Lottie;\n\n\nLottie.propTypes = {\n eventListeners: _propTypes2.default.arrayOf(_propTypes2.default.object),\n options: _propTypes2.default.object.isRequired,\n height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n isStopped: _propTypes2.default.bool,\n isPaused: _propTypes2.default.bool,\n speed: _propTypes2.default.number,\n segments: _propTypes2.default.arrayOf(_propTypes2.default.number),\n direction: _propTypes2.default.number,\n ariaRole: _propTypes2.default.string,\n ariaLabel: _propTypes2.default.string,\n isClickToPauseDisabled: _propTypes2.default.bool,\n title: _propTypes2.default.string\n};\n\nLottie.defaultProps = {\n eventListeners: [],\n isStopped: false,\n isPaused: false,\n speed: 1,\n ariaRole: 'button',\n ariaLabel: 'animation',\n isClickToPauseDisabled: false,\n title: ''\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"b5ef91e1\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"lottie-react-dolphinbat:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/projects/lottie/react/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunklottie_react_dolphinbat\"] = self[\"webpackChunklottie_react_dolphinbat\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","const _excluded = [\"as\", \"disabled\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\nexport function useButtonProps({\n tagName,\n disabled,\n href,\n target,\n rel,\n onClick,\n tabIndex = 0,\n type\n}) {\n if (!tagName) {\n if (href != null || target != null || rel != null) {\n tagName = 'a';\n } else {\n tagName = 'button';\n }\n }\n\n const meta = {\n tagName\n };\n\n if (tagName === 'button') {\n return [{\n type: type || 'button',\n disabled\n }, meta];\n }\n\n const handleClick = event => {\n if (disabled || tagName === 'a' && isTrivialHref(href)) {\n event.preventDefault();\n }\n\n if (disabled) {\n event.stopPropagation();\n return;\n }\n\n onClick == null ? void 0 : onClick(event);\n };\n\n const handleKeyDown = event => {\n if (event.key === ' ') {\n event.preventDefault();\n handleClick(event);\n }\n };\n\n if (tagName === 'a') {\n // Ensure there's a href so Enter can trigger anchor button.\n href || (href = '#');\n\n if (disabled) {\n href = undefined;\n }\n }\n\n return [{\n role: 'button',\n // explicitly undefined so that it overrides the props disabled in a spread\n // e.g. \n disabled: undefined,\n tabIndex: disabled ? undefined : tabIndex,\n href,\n target: tagName === 'a' ? target : undefined,\n 'aria-disabled': !disabled ? undefined : disabled,\n rel: tagName === 'a' ? rel : undefined,\n onClick: handleClick,\n onKeyDown: handleKeyDown\n }, meta];\n}\nconst Button = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n as: asProp,\n disabled\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n const [buttonProps, {\n tagName: Component\n }] = useButtonProps(Object.assign({\n tagName: asProp,\n disabled\n }, props));\n return /*#__PURE__*/_jsx(Component, Object.assign({}, props, buttonProps, {\n ref: ref\n }));\n});\nButton.displayName = 'Button';\nexport default Button;","import * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {},\n breakpoints: DEFAULT_BREAKPOINTS\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\n\nfunction ThemeProvider({\n prefixes = {},\n breakpoints = DEFAULT_BREAKPOINTS,\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: { ...prefixes\n },\n breakpoints,\n dir\n }), [prefixes, breakpoints, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\n\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n const {\n breakpoints\n } = useContext(ThemeContext);\n return breakpoints;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\n\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent; // If it's a functional component make sure we don't break it with a ref\n\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({ ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, { ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\n\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useButtonProps } from '@restart/ui/Button';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultProps = {\n variant: 'primary',\n active: false,\n disabled: false\n};\nconst Button = /*#__PURE__*/React.forwardRef(({\n as,\n bsPrefix,\n variant,\n size,\n active,\n className,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'btn');\n const [buttonProps, {\n tagName\n }] = useButtonProps({\n tagName: as,\n ...props\n });\n const Component = tagName;\n return /*#__PURE__*/_jsx(Component, { ...buttonProps,\n ...props,\n ref: ref,\n className: classNames(className, prefix, active && 'active', variant && `${prefix}-${variant}`, size && `${prefix}-${size}`, props.href && props.disabled && 'disabled')\n });\n});\nButton.displayName = 'Button';\nButton.defaultProps = defaultProps;\nexport default Button;","import React from \"react\";\nimport Button from 'react-bootstrap/Button';\nimport Lottie from \"react-lottie\";\nimport * as animationData from \"../../dolphinbat_data.json\";\nimport \"./LottieControl.scss\";\n\ninterface LottieControlProps {}\ninterface LottieControlState {\n isStopped: boolean;\n isPaused: boolean;\n}\n\nexport default class LottieControl extends React.Component<\n LottieControlProps,\n LottieControlState\n> {\n constructor(props: LottieControlProps) {\n super(props);\n this.state = { isStopped: false, isPaused: false };\n }\n\n render() {\n const buttonStyle = {\n margin: \"10px\",\n };\n\n const defaultOptions = {\n loop: true,\n autoplay: true,\n animationData: animationData,\n rendererSettings: {\n preserveAspectRatio: \"xMidYMid slice\",\n },\n };\n\n return (\n
\n \n this.setState({ isStopped: true })}\n >\n Stop\n \n this.setState({ isStopped: false })}\n >\n Play\n \n this.setState({ isPaused: !this.state.isPaused })}\n >\n Pause\n \n
\n );\n }\n}\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import React from 'react';\nimport LottieControl from './components/LottieControl/LottieControl';\nimport './App.scss';\n\nfunction App() {\n return (\n
\n
\n

Lottie React

\n
\n\n \n
\n );\n}\n\nexport default App;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport './index.scss';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","key","call","join","module","exports","default","ReactPropTypesSecret","require","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","err","Error","name","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","aa","ba","p","a","b","c","encodeURIComponent","ca","Set","da","ea","fa","add","ha","window","document","createElement","ia","ja","ka","la","q","d","e","f","g","this","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","type","sanitizeURL","removeEmptyString","z","split","forEach","toLowerCase","pa","qa","toUpperCase","ra","slice","na","isNaN","oa","test","ma","removeAttribute","setAttribute","setAttributeNS","replace","xlinkHref","sa","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ta","Symbol","for","ua","va","wa","xa","ya","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","iterator","Ia","Ja","A","assign","Ka","stack","trim","match","La","Ma","prepareStackTrace","defineProperty","set","Reflect","construct","l","h","k","displayName","includes","Na","tag","render","Oa","$$typeof","_context","_payload","_init","Pa","Qa","Ra","nodeName","Ta","_valueTracker","getOwnPropertyDescriptor","constructor","get","configurable","enumerable","getValue","setValue","stopTracking","Sa","Ua","checked","value","Va","activeElement","body","Wa","defaultChecked","defaultValue","_wrapperState","initialChecked","Xa","initialValue","controlled","Ya","Za","$a","ab","ownerDocument","bb","cb","options","selected","defaultSelected","disabled","db","dangerouslySetInnerHTML","children","eb","fb","gb","textContent","hb","ib","jb","kb","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","lb","lastChild","nodeType","nodeValue","mb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","nb","ob","pb","style","indexOf","setProperty","keys","charAt","substring","qb","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr","rb","sb","is","tb","ub","target","srcElement","correspondingUseElement","parentNode","vb","wb","xb","yb","zb","stateNode","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","addEventListener","removeEventListener","Kb","m","onError","Lb","Mb","Nb","Ob","Pb","Qb","Sb","alternate","return","flags","Tb","memoizedState","dehydrated","Ub","Wb","child","sibling","current","Vb","Xb","Yb","unstable_scheduleCallback","Zb","unstable_cancelCallback","$b","unstable_shouldYield","ac","unstable_requestPaint","D","unstable_now","bc","unstable_getCurrentPriorityLevel","cc","unstable_ImmediatePriority","dc","unstable_UserBlockingPriority","ec","unstable_NormalPriority","fc","unstable_LowPriority","gc","unstable_IdlePriority","hc","ic","lc","Math","clz32","mc","nc","log","LN2","oc","pc","qc","rc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","sc","uc","vc","wc","eventTimes","yc","E","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Map","Lc","Mc","Nc","Oc","delete","pointerId","Pc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Rc","Sc","priority","isDehydrated","containerInfo","Tc","Uc","dispatchEvent","shift","Vc","Wc","Xc","Yc","Zc","ReactCurrentBatchConfig","$c","transition","ad","bd","cd","dd","Qc","stopPropagation","ed","fd","gd","hd","id","jd","keyCode","charCode","kd","ld","md","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","rd","sd","td","nd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","od","pd","view","detail","qd","vd","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","ud","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","wd","yd","dataTransfer","Ad","Cd","animationName","elapsedTime","pseudoElement","Dd","clipboardData","Ed","Gd","data","Hd","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Id","Jd","Alt","Control","Meta","Shift","Kd","Ld","String","fromCharCode","code","repeat","locale","which","Md","Od","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Qd","touches","targetTouches","changedTouches","Sd","Td","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Ud","Vd","Wd","Xd","documentMode","Yd","Zd","$d","ae","be","ce","de","ge","color","date","datetime","email","month","password","range","search","tel","text","time","url","week","he","ie","je","event","listeners","ke","le","me","ne","oe","pe","qe","re","se","te","ue","oninput","ve","detachEvent","we","xe","attachEvent","ye","ze","Ae","Ce","De","Ee","Fe","offset","nextSibling","Ge","contains","compareDocumentPosition","He","HTMLIFrameElement","contentWindow","href","Ie","contentEditable","Je","focusedElem","selectionRange","documentElement","start","end","selectionStart","selectionEnd","min","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","focus","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","animationend","animationiteration","animationstart","transitionend","Se","Te","Ue","animation","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","ff","gf","concat","hf","Rb","instance","listener","F","jf","has","kf","lf","mf","random","nf","bind","capture","passive","n","v","C","t","x","r","B","of","pf","parentWindow","qf","rf","O","T","za","L","ee","char","fe","unshift","sf","tf","uf","vf","wf","xf","yf","__html","zf","setTimeout","Af","clearTimeout","Bf","Promise","Df","queueMicrotask","resolve","then","catch","Cf","Ef","Ff","Gf","previousSibling","Hf","If","Jf","Kf","Lf","Mf","Nf","Of","G","H","Pf","I","Qf","Rf","Sf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Tf","childContextTypes","Uf","Vf","Wf","getChildContext","Xf","__reactInternalMemoizedMergedChildContext","Yf","Zf","$f","ag","bg","dg","eg","fg","defaultProps","gg","hg","ig","jg","kg","lg","_currentValue","mg","childLanes","ng","dependencies","firstContext","lanes","og","pg","context","memoizedValue","next","qg","rg","sg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","interleaved","effects","tg","ug","eventTime","lane","payload","callback","vg","J","mode","K","wg","xg","yg","w","u","y","zg","Ag","Bg","Component","refs","Cg","Fg","isMounted","_reactInternals","enqueueSetState","M","Dg","Eg","enqueueReplaceState","enqueueForceUpdate","Gg","shouldComponentUpdate","isPureReactComponent","Hg","contextType","state","updater","Ig","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Jg","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","N","Zg","$g","ah","deletions","bh","pendingProps","overflow","treeContext","retryLane","ch","dh","eh","fh","memoizedProps","gh","hh","ih","ref","_owner","_stringRef","jh","kh","lh","index","mh","nh","oh","implementation","ph","qh","done","rh","sh","th","uh","vh","wh","xh","yh","tagName","zh","Ah","Bh","P","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","ReactCurrentDispatcher","Gh","Hh","Q","R","S","Ih","Jh","Kh","Lh","U","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","queue","Uh","Vh","Wh","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","di","lastEffect","stores","ei","fi","gi","create","destroy","deps","hi","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","zi","message","Ai","console","error","Li","Ni","Oi","Bi","WeakMap","Ci","Di","Ei","Fi","getDerivedStateFromError","componentDidCatch","Gi","componentStack","Hi","pingCache","Ii","Ji","Ki","Pi","tailMode","tail","V","subtreeFlags","Qi","pendingContext","Ri","wasMultiple","multiple","onClick","onclick","size","createElementNS","autoFocus","createTextNode","W","Si","rendering","Ti","renderingStartTime","isBackwards","last","Ui","Vi","Wi","ReactCurrentOwner","Xi","Yi","Zi","$i","aj","compare","bj","cj","dj","baseLanes","cachePool","ej","fj","gj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","hj","ij","jj","kj","lj","mj","fallback","nj","oj","pj","qj","_reactRetry","rj","sj","tj","uj","vj","xj","yj","zj","Aj","WeakSet","X","Bj","Cj","Dj","Ej","Gj","Hj","Ij","Jj","onCommitFiberUnmount","componentWillUnmount","Kj","Lj","Mj","Nj","Oj","Pj","Qj","insertBefore","_reactRootContainer","Rj","Sj","Tj","Xj","Yj","Zj","ak","__reactInternalSnapshotBeforeUpdate","src","Wj","Lk","bk","ceil","ck","dk","ek","Y","Z","fk","gk","hk","ik","jk","Vj","Infinity","kk","lk","mk","nk","ok","pk","qk","rk","sk","tk","callbackNode","expirationTimes","expiredLanes","tc","callbackPriority","cg","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","finishedWork","finishedLanes","Fk","timeoutHandle","Gk","Hk","Ik","Jk","Kk","mutableReadLanes","xc","Fj","display","Uj","onCommitFiberRoot","jc","onRecoverableError","Mk","onPostCommitFiberRoot","Nk","Ok","Qk","isReactComponent","pendingChildren","Rk","mutableSourceEagerHydrationData","Sk","cache","transitions","Tk","Uk","Vk","Wk","Xk","Yk","Zk","wj","Pk","al","reportError","bl","_internalRoot","cl","dl","el","fl","hl","gl","unmount","unstable_scheduleHydration","splice","querySelectorAll","JSON","stringify","form","il","usingClientEntryPoint","Events","jl","findFiberByHostInstance","bundleType","version","rendererPackageName","kl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","ll","isDisabled","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","__self","__source","jsx","jsxs","setState","forceUpdate","escape","_status","_result","Children","map","count","toArray","only","Fragment","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","pop","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","floor","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","__esModule","Constructor","TypeError","obj","_defineProperty","_defineProperty2","defineProperties","descriptor","writable","protoProps","staticProps","_assign","_assign2","_setPrototypeOf2","_interopRequireDefault","_create2","_typeof3","subClass","superClass","__proto__","_typeof2","self","ReferenceError","_iterator2","_symbol2","_typeof","$Object","it","desc","isObject","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","core","__e","aFunction","fn","that","undefined","getKeys","gOPS","pIE","result","getSymbols","symbols","isEnum","global","ctx","hide","$export","own","out","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","IS_WRAP","expProto","Function","virtual","exec","__g","dP","createDesc","cof","propertyIsEnumerable","setToStringTag","IteratorPrototype","NAME","LIBRARY","redefine","Iterators","$iterCreate","getPrototypeOf","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","DEFAULT","IS_SET","FORCED","methods","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","values","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","KEY","NEED","fastKey","getWeak","onFreeze","DESCRIPTORS","toObject","IObject","$assign","aLen","j","anObject","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","open","write","lt","close","Properties","IE8_DOM_DEFINE","toPrimitive","Attributes","gOPD","gOPN","windowNames","getOwnPropertyNames","getWindowNames","$keys","hiddenKeys","getOwnPropertySymbols","ObjectProto","arrayIndexOf","names","fails","exp","bitmap","check","setPrototypeOf","buggy","def","stat","uid","SHARED","store","copyright","toInteger","defined","TO_STRING","pos","s","charCodeAt","max","val","px","wksExt","$Symbol","USE_SYMBOL","addToUnscopables","step","iterated","_t","_i","_k","Arguments","$getPrototypeOf","$at","point","$fails","wks","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","sym","isSymbol","$defineProperty","$defineProperties","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","replacer","$replacer","args","TO_STRING_TAG","DOMIterables","Collection","factory","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","destination","sourcePrototype","len","attr","getDescriptor","prop","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","pause","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","arr","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","subframeEnabled","expressionsPlugin","idPrefix","isSafari","userAgent","_shouldRoundValues","bmPow","pow","bmSqrt","sqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","abs","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","round","styleDiv","position","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","RGBtoHSV","addSaturationToRGB","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","path","_workerSelf","setupWorker","Worker","Blob","blob","URL","createObjectURL","createWorker","completeLayers","layers","comps","layerData","jLen","kLen","completed","tt","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","comp","findComp","__used","parse","ks","o","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","animationData","assets","checkChars","chars","charData","ip","op","st","sr","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","response","responseText","load","fullPath","errorCallback","XMLHttpRequest","onreadystatechange","readyState","status","send","completeData","process","onComplete","createProcess","loadAnimation","processId","origin","pathname","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","testImageLoaded","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","createFootageData","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","createImageData","_elementHelper","append","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","_cbs","callbacks","markerParser","parsePayloadLines","line","lines","keysCount","_markers","markers","_marker","markerData","tm","duration","dr","cm","_","__","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","autoplay","loop","renderer","animationID","timeCompleted","segmentPos","isSubframeEnabled","segments","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","setParams","params","wrapper","container","animType","RendererClass","rendererSettings","globalData","defs","setProjectInterface","parseInt","autoloadSegments","initialSegment","setupAnimation","lastIndexOf","substr","fileName","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","resize","updateContainerSize","setSubframe","renderFrame","triggerRenderFrameError","togglePause","stop","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","Number","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","init","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","getPath","getAssetData","show","getDuration","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","str","beziers","bezEasing","BezierEasing","kSampleStepSize","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","PropertyFactory","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","to","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","quaternionToEuler","omega","cosom","sinom","scale0","scale1","ax","ay","az","aw","bx","by","bz","bw","acos","sin","slerp","createQuaternion","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","getProp","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","reset","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","rotate","mCos","mSin","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","translate","tx","tz","transform","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","queryString","setLocation","setSubframeRendering","setPrefix","prefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","pair","decodeURIComponent","useWebWorker","setIDPrefix","__getFactory","scripts","myScript","define","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","getFontProperties","fontData","styles","fStyle","fWeight","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","hasReloaded","copies","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","currentV","currentI","currentO","closerV","distance","newPosPerc","FontManager","emptyChar","combinedCharacters","surrogateModifiers","zeroWidthJoiner","setUpNode","font","family","fontFamily","fontSize","fontVariant","fontStyle","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","tHelper","fontProps","fFamily","fClass","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","_char3","fontPrototype","found","list","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","rel","helper","getCharData","_char","warn","getFontByName","fName","measureText","_char2","fontName","doubleSize","getComputedTextLength","singleSize","loadedCount","RenderableElement","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","component","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","MaskManagerInterface","MaskInterface","mask","_mask","_data","maskManager","_masksInterfaces","viewData","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","property","getVelocityAtTime","numKeys","valueProp","valueAtTime","speedAtTime","getSpeedAtTime","velocityAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","rotation","xRotation","yRotation","xPosition","yPosition","zPosition","anchorPoint","_px","_py","_pz","_transformFactory","LayerExpressionInterface","getMatrix","toWorldMat","_elem","toWorldVec","applyPoint","toWorld","fromWorldVec","invertPoint","fromWorld","hierarchy","fromComp","sampleImage","transformInterface","_thisLayerFunction","shapeInterface","effect","textInterface","toComp","anchorPointDescriptor","hasParent","layerInterface","anchor_point","active","inPoint","outPoint","_name","registerMaskInterface","registerEffectsInterface","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","EffectsExpressionInterface","createGroupInterface","groupInterface","ef","mn","effectElements","_propertyGroup","createValueInterface","numProperties","np","enabled","en","expressionProperty","setGroupProperty","createEffectsInterface","effectsManager","effectsData","CompExpressionInterface","layer","pixelAspect","compSize","frameDuration","displayStartTime","numLayers","ShapePathInterface","propertyIndex","ShapeExpressionInterface","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","content","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dataProps","dash","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","TextExpressionInterface","_prevValue","_sourceText","sourceText","textProperty","stringValue","currentData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effectItem","GroupEffect","BaseElement","FrameElement","_typeof$2","eff","checkMasks","effectsInterface","shapesData","itemsData","setBlendMode","blendModeValue","bm","baseElement","layerElement","initBaseData","layerId","getType","prepareProperties","isVisible","_isParent","FootageInterface","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","getFootageData","searchProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","FootageElement","imageLoader","AudioElement","_isPlaying","_canPlay","_currentTime","_placeholder","BaseRenderer","TransformElement","MaskElement","maskElement","solidPath","rect","expansor","feMorph","properties","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","getBaseElement","timeRemapped","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","setAsParent","setHierarchy","addPendingElement","pendingElements","setupGlobalData","fontsContainer","animationItem","initTransform","_matMdf","_opMdf","ao","renderTransform","finalMat","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","SVGTintFilter","filter","filterManager","matrixFilter","feMergeNode","feMerge","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","filterSize","feGaussianBlur","feOffset","feFlood","feComposite","originalNodeAdded","colorBlack","colorWhite","initialize","groupPath","elemChildren","childNodes","masker","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","feFunc","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","_svgMatteSymbols","SVGMatte3Effect","filterElem","matteElement","transformedElement","SVGGaussianBlurEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","setMatte","sigma","dimensions","sigmaX","sigmaY","edgeMode","registeredEffects","SVGEffects","createFilter","filters","Effect","countsAsEffect","registerEffect","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","_sizeChanged","layerElementParent","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","alphaRect","ln","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","renderableEffectsManager","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","cst","opacityId","maskId","opFill","ml","ms","ost","buildShapeString","_o","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","dist","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","ascent","boxWidth","defaultBoxWidth","justifyOffset","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charactersArray","shouldCombine","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fs","rn","totalChars","newInd","currentInd","updateDocumentData","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","sm","getMult","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","matrixHelper","renderedLettersCount","tLength","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","rot","atan","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","config","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","className","focusable","destroyed","CVContextData","saved","cArrPos","cTr","cO","savedOp","ShapeTransformManager","sequences","sequenceList","transform_key_count","CVEffects","CVMaskElement","hasMasks","CVBaseElement","CVShapeData","transformsManager","styledShapes","styledShape","addTransformSequence","trNodes","CVShapeElement","CVTextElement","stroke","fill","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","clearCanvas","dpr","devicePixelRatio","currentGlobalAlpha","contextData","transformMat","CVCompElement","CanvasRenderer","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","appendElementInPos","nextElement","setElements","getElements","destroyElements","duplicate","newLength","currentSavedOp","sequence","processSequence","processSequences","getNewKey","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","createElements","blendMode","globalCompositeOperation","hideElement","showElement","forceRealStack","ctxTransform","ctxOpacity","restore","transformHelper","dashResetter","preTransforms","co","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","strokeStyle","grd","lineCap","lineJoin","miterLimit","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","drawImage","cProps","trProps","globalAlpha","actionFlag","popped","containerStyle","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","clearRect","checkBlendMode","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","right","yMax","bottom","tempBoundingBox","p3","b2ac","t2","calculateF","calculateBoundingBox","currentBoxContains","box","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","center","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","svg","cWidth","cHeight","floatingContainer","_createBaseContainerElements","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","_typeof$1","seedRandom","startdenom","significance","ARC4","keylen","copy","flatten","depth","typ","mixkey","seed","smear","stringseed","tostring","shortseed","entropy","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","initialize$2","propTypes","SHAPE","ExpressionManager","fetch","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","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","loopIn","loop_in","loopOut","loop_out","smooth","fromCompToSurface","thisLayer","thisComp","scoped_bm_rt","expression_function","eval","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","posterizeTime","framesPerSecond","executeExpression","_value","frameExpressionId","__preventDeadCodeRemoval","expressionHelpers","searchExpressions","speed","delta","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","_extends3","_getPrototypeOf2","_classCallCheck3","_createClass3","_possibleConstructorReturn3","_inherits3","_react2","_propTypes2","_lottieWeb2","Lottie","_React$Component","_ref","_temp","_this","_ret","_len","_key","handleClickToPause","_props","eventListeners","registerEvents","nextProps","deRegisterEvents","isStopped","_this2","eventListener","_this3","_this4","_props2","ariaRole","isClickToPauseDisabled","getSize","initial","lottieStyles","outline","onClickHandler","role","tabIndex","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","getter","leafPrototypes","getProto","ns","definition","chunkId","all","reduce","promises","miniCssF","inProgress","dataWebpackPrefix","script","needAttach","getAttribute","charset","timeout","onScriptComplete","prev","onerror","onload","doneFns","head","toStringTag","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","_defineProperties","_setPrototypeOf","_getPrototypeOf","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","sham","Proxy","Boolean","Super","NewTarget","ownKeys","enumerableOnly","_objectSpread2","getOwnPropertyDescriptors","_arrayLikeToArray","_slicedToArray","_e","_arr","_n","_d","minLen","from","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","_excluded","useButtonProps","handleClick","isTrivialHref","onKeyDown","Button","React","asProp","as","_objectWithoutPropertiesLoose","buttonProps","_jsx","DEFAULT_BREAKPOINTS","ThemeContext","prefixes","breakpoints","useBootstrapPrefix","defaultPrefix","bsPrefix","variant","LottieControl","buttonStyle","defaultOptions","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","getElementById","reportWebVitals"],"sourceRoot":""}