{"version":3,"file":"static/js/main.8266f2d9.js","mappings":"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AAA,EAAAA,cAAAA,GAAYs7G,oBACsB,UAAlCt7G,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYs7G,mBAEVt7G,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYs7G,oBAKX57H,GAA2B,CAAE,ECnC7B8lB,ICCA,IAAI2sE,IDDUjvF,OAAO8sB,OAAO,KAC5BxrB,GAAetB,OAAO8sB,OAAO,CAAC,GEAnB,SAAAvqB,GACtB1F,EACAW,EACAJ,GAEA,YAAO,IAFPA,IAAAA,EAAiEkE,IAEzDzE,EAAMy7H,QAAUl7H,EAAak7H,OAASz7H,EAAMy7H,OAAU96H,GAAiBJ,EAAak7H,KAC9F,CCPA,IAwIAp6H,GAAe,IAAI+wF,IAxIF,CACf,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,IACA,KACA,MACA,MACA,QACA,MACA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,OACA,UCrIIhsF,GAAc,wCAEdzB,GAAe,WAMG,SAAA+B,GAAO1G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","sources":["../node_modules/react/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/prop-types/index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/shallowequal/index.js","../node_modules/react-dom/client.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/react/jsx-runtime.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/lottie-react/compiled/hooks/useLottie.js","../node_modules/lottie-react/compiled/hooks/useLottieInteractivity.js","../node_modules/lottie-react/compiled/components/Lottie.js","../node_modules/scheduler/index.js","../node_modules/js-cookie/src/js.cookie.js","../node_modules/react-dom/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","../webpack/runtime/nonce","../node_modules/styled-components/node_modules/tslib/tslib.es6.mjs","../node_modules/styled-components/node_modules/stylis/src/Enum.js","../node_modules/styled-components/node_modules/stylis/src/Utility.js","../node_modules/styled-components/node_modules/stylis/src/Tokenizer.js","../node_modules/styled-components/node_modules/stylis/src/Serializer.js","../node_modules/styled-components/node_modules/stylis/src/Prefixer.js","../node_modules/styled-components/node_modules/stylis/src/Middleware.js","../node_modules/styled-components/node_modules/stylis/src/Parser.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/styled-components/src/constants.ts","../node_modules/styled-components/src/utils/empties.ts","../node_modules/styled-components/src/utils/checkDynamicCreation.ts","../node_modules/styled-components/src/utils/determineTheme.ts","../node_modules/styled-components/src/utils/domElements.ts","../node_modules/styled-components/src/utils/escape.ts","../node_modules/styled-components/src/utils/generateAlphabeticName.ts","../node_modules/styled-components/src/utils/hash.ts","../node_modules/styled-components/src/utils/generateComponentId.ts","../node_modules/styled-components/src/utils/getComponentName.ts","../node_modules/styled-components/src/utils/isTag.ts","../node_modules/styled-components/src/utils/hoist.ts","../node_modules/styled-components/src/utils/isFunction.ts","../node_modules/styled-components/src/utils/isStyledComponent.ts","../node_modules/styled-components/src/utils/joinStrings.ts","../node_modules/styled-components/src/utils/isPlainObject.ts","../node_modules/styled-components/src/utils/mixinDeep.ts","../node_modules/styled-components/src/utils/setToString.ts","../node_modules/styled-components/src/utils/error.ts","../node_modules/styled-components/src/sheet/GroupedTag.ts","../node_modules/styled-components/src/sheet/GroupIDAllocator.ts","../node_modules/styled-components/src/sheet/Rehydration.ts","../node_modules/styled-components/src/utils/nonce.ts","../node_modules/styled-components/src/sheet/dom.ts","../node_modules/styled-components/src/sheet/Tag.ts","../node_modules/styled-components/src/sheet/Sheet.ts","../node_modules/styled-components/src/utils/stylis.ts","../node_modules/styled-components/src/models/StyleSheetManager.tsx","../node_modules/styled-components/src/models/Keyframes.ts","../node_modules/styled-components/src/utils/hyphenateStyleName.ts","../node_modules/styled-components/src/utils/flatten.ts","../node_modules/styled-components/src/utils/addUnitIfNeeded.ts","../node_modules/styled-components/src/utils/isStatelessFunction.ts","../node_modules/styled-components/src/utils/isStaticRules.ts","../node_modules/styled-components/src/models/ComponentStyle.ts","../node_modules/styled-components/src/models/ThemeProvider.tsx","../node_modules/styled-components/src/models/StyledComponent.ts","../node_modules/styled-components/src/utils/generateDisplayName.ts","../node_modules/styled-components/src/utils/interleave.ts","../node_modules/styled-components/src/constructors/css.ts","../node_modules/styled-components/src/constructors/constructWithOptions.ts","../node_modules/styled-components/src/constructors/styled.tsx","../node_modules/styled-components/src/models/GlobalStyle.ts","../node_modules/styled-components/src/constructors/keyframes.ts","../node_modules/styled-components/src/models/ServerStyleSheet.tsx","../node_modules/styled-components/src/base.ts","components/style/GlobalStyle.tsx","../node_modules/styled-components/src/constructors/createGlobalStyle.ts","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/deprecations.ts","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","components/style/new-Footer-style.tsx","assets/at-details/email-icon.svg","assets/at-details/phone-icon.svg","assets/at-details/adress-icon.svg","components/utils/contactFooter.tsx","../node_modules/react-use/esm/misc/util.js","../node_modules/react-use/esm/useLockBodyScroll.js","assets/at-logo.svg","components/style/hamburger-style.tsx","components/utils/hamburger.tsx","components/style/menu-style.tsx","components/utils/dekstopNav.tsx","components/mainLayout.tsx","components/singleLayout.tsx","assets/at-details/arrow-down.svg","components/style/intro-style.tsx","../node_modules/gsap/gsap-core.js","../node_modules/gsap/CSSPlugin.js","../node_modules/gsap/index.js","components/gsap/new-introAnimation.tsx","components/pages/new-IntroHeader.tsx","components/style/lib.tsx","components/style/OmOss-style.tsx","../node_modules/@emailjs/browser/es/models/EmailJSResponseStatus.js","../node_modules/@emailjs/browser/es/utils/createWebStorage/createWebStorage.js","../node_modules/@emailjs/browser/es/store/store.js","../node_modules/@emailjs/browser/es/utils/buildOptions/buildOptions.js","../node_modules/@emailjs/browser/es/api/sendPost.js","../node_modules/@emailjs/browser/es/utils/validateParams/validateParams.js","../node_modules/@emailjs/browser/es/utils/isHeadless/isHeadless.js","../node_modules/@emailjs/browser/es/errors/headlessError/headlessError.js","../node_modules/@emailjs/browser/es/utils/isBlockedValueInParams/isBlockedValueInParams.js","../node_modules/@emailjs/browser/es/utils/validateBlockListParams/validateBlockListParams.js","../node_modules/@emailjs/browser/es/errors/blockedEmailError/blockedEmailError.js","../node_modules/@emailjs/browser/es/utils/isLimitRateHit/isLimitRateHit.js","../node_modules/@emailjs/browser/es/utils/validateLimitRateParams/validateLimitRateParams.js","../node_modules/@emailjs/browser/es/errors/limitRateError/limitRateError.js","../node_modules/@emailjs/browser/es/index.js","../node_modules/@emailjs/browser/es/methods/send/send.js","../node_modules/@emailjs/browser/es/utils/validateTemplateParams/validateTemplateParams.js","../node_modules/react-google-recaptcha/lib/esm/recaptcha.js","../node_modules/react-async-script/lib/esm/async-script-loader.js","../node_modules/react-google-recaptcha/lib/esm/recaptcha-wrapper.js","../node_modules/react-google-recaptcha/lib/esm/index.js","components/style/new-Form-style.tsx","components/landingpage/lp-contact-style.tsx","components/utils/new-ContactForm.tsx","assets/at-details/linkedin-icon.svg","components/style/new-KontaktaOss-style.tsx","components/utils/new-KontaktaOss.tsx","components/pages/new-OmOss.tsx","components/style/workWithUs-style.tsx","components/utils/lottieFile.tsx","components/pages/workWithUs.tsx","components/style/contact-style.tsx","components/utils/privacy.tsx","components/utils/notFound.tsx","../node_modules/react-use/esm/useCookie.js","../node_modules/@gsap/react/src/index.js","components/gsap/rollCookie.tsx","assets/kaka.svg","components/utils/cookies.tsx","components/utils/scrollTo.tsx","components/landingpage/landingpage-style.tsx","assets/lp-assets/lp-arrow.svg","components/landingpage/lp-intro.tsx","components/landingpage/lp-process.tsx","components/landingpage/lp-faq.tsx","components/landingpage/lp-contact.tsx","assets/lp-assets/lp-toknojd.svg","components/landingpage/lp-case.tsx","components/landingpage/lp-services-style.tsx","assets/lp-assets/icons/uxdesign.svg","assets/lp-assets/icons/webbutv.svg","assets/lp-assets/icons/hosting.svg","components/landingpage/lp-services.tsx","components/landingpage/landingPage.tsx","assets/kaka-dark.svg","components/utils/cookie-info.tsx","components/landingpage/tack.tsx","components/style/new-tjanster-infopage-style.tsx","components/style/new-skill-details-konsult-style.tsx","assets/at-details/starSkill.svg","components/utils/new-skill-details-konsult.tsx","components/style/bokaMote.tsx","components/pages/new-konsulter.tsx","assets/heart.svg","components/style/new-kunder-style.tsx","assets/logos-customers/avtalat-logo25.svg","assets/logos-customers/avtalat-logo25_clr.svg","assets/logos-customers/coop_logo25.svg","assets/logos-customers/coop_logo25_color.svg","assets/logos-customers/hrlegal_logo25.svg","assets/logos-customers/hrlegal_logo25_clr.svg","assets/logos-customers/hn_logo25.svg","assets/logos-customers/hn_logo25_clr.svg","assets/logos-customers/manpower-logo25.svg","assets/logos-customers/manpower-logo25_clr.svg","assets/logos-customers/skandia_logo25.svg","assets/logos-customers/skandia_logo25_color.svg","assets/logos-customers/ving_primarylogo25.svg","assets/logos-customers/ving_primarylogo25_color.svg","assets/logos-customers/vfs-logo25.svg","assets/logos-customers/vfs-logo25_clr.svg","components/pages/new-Kunder.tsx","components/style/new-tjanster-style.tsx","assets/at-details/longArrow.svg","components/pages/new-Tjanster.tsx","components/style/new-intro-OmOss-style.tsx","components/utils/bubble.tsx","components/pages/new-intro-OmOss.tsx","assets/at-details/arrow-back.svg","components/style/new-webbutv-details-style.tsx","components/pages/new-CmsInfo.tsx","components/pages/new-SeoInfo.tsx","components/pages/new-UxUiInfo.tsx","components/style/new-skill-webbutveckling-style.tsx","components/utils/new-skill-webbutveckling.tsx","components/pages/new-Webbutveckling.tsx","components/pages/new-HostingForvaltning.tsx","components/utils/routes.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * 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 * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(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=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(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 Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(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=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,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=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),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:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(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&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(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 Rj(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 Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(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 Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(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(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(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);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(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?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();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&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(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:Ci(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=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.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=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(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,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(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:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(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 ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 {\n const { animationData, loop, autoplay, initialSegment, onComplete, onLoopComplete, onEnterFrame, onSegmentStart, onConfigReady, onDataReady, onDataFailed, onLoadedImages, onDOMLoaded, onDestroy, \n // Specified here to take them out from the 'rest'\n lottieRef, renderer, name, assetsPath, rendererSettings, \n // TODO: find a better way to extract the html props to avoid specifying\n // all the props that we want to exclude (as you can see above)\n ...rest } = props;\n const [animationLoaded, setAnimationLoaded] = useState(false);\n const animationInstanceRef = useRef();\n const animationContainer = useRef(null);\n /*\n ======================================\n INTERACTION METHODS\n ======================================\n */\n /**\n * Play\n */\n const play = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.play();\n };\n /**\n * Stop\n */\n const stop = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.stop();\n };\n /**\n * Pause\n */\n const pause = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.pause();\n };\n /**\n * Set animation speed\n * @param speed\n */\n const setSpeed = (speed) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSpeed(speed);\n };\n /**\n * Got to frame and play\n * @param value\n * @param isFrame\n */\n const goToAndPlay = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndPlay(value, isFrame);\n };\n /**\n * Got to frame and stop\n * @param value\n * @param isFrame\n */\n const goToAndStop = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndStop(value, isFrame);\n };\n /**\n * Set animation direction\n * @param direction\n */\n const setDirection = (direction) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setDirection(direction);\n };\n /**\n * Play animation segments\n * @param segments\n * @param forceFlag\n */\n const playSegments = (segments, forceFlag) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.playSegments(segments, forceFlag);\n };\n /**\n * Set sub frames\n * @param useSubFrames\n */\n const setSubframe = (useSubFrames) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSubframe(useSubFrames);\n };\n /**\n * Get animation duration\n * @param inFrames\n */\n const getDuration = (inFrames) => { var _a; return (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.getDuration(inFrames); };\n /**\n * Destroy animation\n */\n const destroy = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Removing the reference to the animation so separate cleanups are skipped.\n // Without it the internal `lottie-react` instance throws exceptions as it already cleared itself on destroy.\n animationInstanceRef.current = undefined;\n };\n /*\n ======================================\n LOTTIE\n ======================================\n */\n /**\n * Load a new animation, and if it's the case, destroy the previous one\n * @param {Object} forcedConfigs\n */\n const loadAnimation = (forcedConfigs = {}) => {\n var _a;\n // Return if the container ref is null\n if (!animationContainer.current) {\n return;\n }\n // Destroy any previous instance\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Build the animation configuration\n const config = {\n ...props,\n ...forcedConfigs,\n container: animationContainer.current,\n };\n // Save the animation instance\n animationInstanceRef.current = lottie.loadAnimation(config);\n setAnimationLoaded(!!animationInstanceRef.current);\n // Return a function that will clean up\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n animationInstanceRef.current = undefined;\n };\n };\n /**\n * (Re)Initialize when animation data changed\n */\n useEffect(() => {\n const onUnmount = loadAnimation();\n // Clean up on unmount\n return () => onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animationData, loop]);\n // Update the autoplay state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n animationInstanceRef.current.autoplay = !!autoplay;\n }, [autoplay]);\n // Update the initial segment state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n // When null should reset to default animation length\n if (!initialSegment) {\n animationInstanceRef.current.resetSegments(true);\n return;\n }\n // If it's not a valid segment, do nothing\n if (!Array.isArray(initialSegment) || !initialSegment.length) {\n return;\n }\n // If the current position it's not in the new segment\n // set the current position to start\n if (animationInstanceRef.current.currentRawFrame < initialSegment[0] ||\n animationInstanceRef.current.currentRawFrame > initialSegment[1]) {\n animationInstanceRef.current.currentRawFrame = initialSegment[0];\n }\n // Update the segment\n animationInstanceRef.current.setSegment(initialSegment[0], initialSegment[1]);\n }, [initialSegment]);\n /*\n ======================================\n EVENTS\n ======================================\n */\n /**\n * Reinitialize listener on change\n */\n useEffect(() => {\n const partialListeners = [\n { name: \"complete\", handler: onComplete },\n { name: \"loopComplete\", handler: onLoopComplete },\n { name: \"enterFrame\", handler: onEnterFrame },\n { name: \"segmentStart\", handler: onSegmentStart },\n { name: \"config_ready\", handler: onConfigReady },\n { name: \"data_ready\", handler: onDataReady },\n { name: \"data_failed\", handler: onDataFailed },\n { name: \"loaded_images\", handler: onLoadedImages },\n { name: \"DOMLoaded\", handler: onDOMLoaded },\n { name: \"destroy\", handler: onDestroy },\n ];\n const listeners = partialListeners.filter((listener) => listener.handler != null);\n if (!listeners.length) {\n return;\n }\n const deregisterList = listeners.map(\n /**\n * Handle the process of adding an event listener\n * @param {Listener} listener\n * @return {Function} Function that deregister the listener\n */\n (listener) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener(listener.name, listener.handler);\n // Return a function to deregister this listener\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(listener.name, listener.handler);\n };\n });\n // Deregister listeners on unmount\n return () => {\n deregisterList.forEach((deregister) => deregister());\n };\n }, [\n onComplete,\n onLoopComplete,\n onEnterFrame,\n onSegmentStart,\n onConfigReady,\n onDataReady,\n onDataFailed,\n onLoadedImages,\n onDOMLoaded,\n onDestroy,\n ]);\n /**\n * Build the animation view\n */\n const View = React.createElement(\"div\", { style: style, ref: animationContainer, ...rest });\n return {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef: animationContainer,\n animationLoaded,\n animationItem: animationInstanceRef.current,\n };\n};\nexport default useLottie;\n","import { useEffect } from \"react\";\n// helpers\nexport function getContainerVisibility(container) {\n const { top, height } = container.getBoundingClientRect();\n const current = window.innerHeight - top;\n const max = window.innerHeight + height;\n return current / max;\n}\nexport function getContainerCursorPosition(container, cursorX, cursorY) {\n const { top, left, width, height } = container.getBoundingClientRect();\n const x = (cursorX - left) / width;\n const y = (cursorY - top) / height;\n return { x, y };\n}\nexport const useInitInteractivity = ({ wrapperRef, animationItem, mode, actions, }) => {\n useEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper || !animationItem || !actions.length) {\n return;\n }\n animationItem.stop();\n const scrollModeHandler = () => {\n let assignedSegment = null;\n const scrollHandler = () => {\n const currentPercent = getContainerVisibility(wrapper);\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ visibility }) => visibility &&\n currentPercent >= visibility[0] &&\n currentPercent <= visibility[1]);\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n if (action.type === \"seek\" &&\n action.visibility &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const frameToGo = action.frames[0] +\n Math.ceil(((currentPercent - action.visibility[0]) /\n (action.visibility[1] - action.visibility[0])) *\n action.frames[1]);\n //! goToAndStop must be relative to the start of the current segment\n animationItem.goToAndStop(frameToGo - animationItem.firstFrame - 1, true);\n }\n if (action.type === \"loop\") {\n // Loop: Loop a given frames\n if (assignedSegment === null) {\n // if not playing any segments currently. play those segments and save to state\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else {\n // if playing any segments currently.\n //check if segments in state are equal to the frames selected by action\n if (assignedSegment !== action.frames) {\n // if they are not equal. new segments are to be loaded\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else if (animationItem.isPaused) {\n // if they are equal the play method must be called only if lottie is paused\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n }\n }\n if (action.type === \"play\" && animationItem.isPaused) {\n // Play: Reset segments and continue playing full animation from current position\n animationItem.resetSegments(true);\n animationItem.play();\n }\n if (action.type === \"stop\") {\n // Stop: Stop playback\n animationItem.goToAndStop(action.frames[0] - animationItem.firstFrame - 1, true);\n }\n };\n document.addEventListener(\"scroll\", scrollHandler);\n return () => {\n document.removeEventListener(\"scroll\", scrollHandler);\n };\n };\n const cursorModeHandler = () => {\n const handleCursor = (_x, _y) => {\n let x = _x;\n let y = _y;\n // Resolve cursor position if cursor is inside container\n if (x !== -1 && y !== -1) {\n // Get container cursor position\n const pos = getContainerCursorPosition(wrapper, x, y);\n // Use the resolved position\n x = pos.x;\n y = pos.y;\n }\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ position }) => {\n if (position &&\n Array.isArray(position.x) &&\n Array.isArray(position.y)) {\n return (x >= position.x[0] &&\n x <= position.x[1] &&\n y >= position.y[0] &&\n y <= position.y[1]);\n }\n if (position &&\n !Number.isNaN(position.x) &&\n !Number.isNaN(position.y)) {\n return x === position.x && y === position.y;\n }\n return false;\n });\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n // Process action types:\n if (action.type === \"seek\" &&\n action.position &&\n Array.isArray(action.position.x) &&\n Array.isArray(action.position.y) &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const xPercent = (x - action.position.x[0]) /\n (action.position.x[1] - action.position.x[0]);\n const yPercent = (y - action.position.y[0]) /\n (action.position.y[1] - action.position.y[0]);\n animationItem.playSegments(action.frames, true);\n animationItem.goToAndStop(Math.ceil(((xPercent + yPercent) / 2) *\n (action.frames[1] - action.frames[0])), true);\n }\n if (action.type === \"loop\") {\n animationItem.playSegments(action.frames, true);\n }\n if (action.type === \"play\") {\n // Play: Reset segments and continue playing full animation from current position\n if (animationItem.isPaused) {\n animationItem.resetSegments(false);\n }\n animationItem.playSegments(action.frames);\n }\n if (action.type === \"stop\") {\n animationItem.goToAndStop(action.frames[0], true);\n }\n };\n const mouseMoveHandler = (ev) => {\n handleCursor(ev.clientX, ev.clientY);\n };\n const mouseOutHandler = () => {\n handleCursor(-1, -1);\n };\n wrapper.addEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.addEventListener(\"mouseout\", mouseOutHandler);\n return () => {\n wrapper.removeEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.removeEventListener(\"mouseout\", mouseOutHandler);\n };\n };\n switch (mode) {\n case \"scroll\":\n return scrollModeHandler();\n case \"cursor\":\n return cursorModeHandler();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mode, animationItem]);\n};\nconst useLottieInteractivity = ({ actions, mode, lottieObj, }) => {\n const { animationItem, View, animationContainerRef } = lottieObj;\n useInitInteractivity({\n actions,\n animationItem,\n mode,\n wrapperRef: animationContainerRef,\n });\n return View;\n};\nexport default useLottieInteractivity;\n","import { useEffect } from \"react\";\nimport useLottie from \"../hooks/useLottie\";\nimport useLottieInteractivity from \"../hooks/useLottieInteractivity\";\nconst Lottie = (props) => {\n var _a, _b, _c;\n const { style, interactivity, ...lottieProps } = props;\n /**\n * Initialize the 'useLottie' hook\n */\n const { View, play, stop, pause, setSpeed, goToAndStop, goToAndPlay, setDirection, playSegments, setSubframe, getDuration, destroy, animationContainerRef, animationLoaded, animationItem, } = useLottie(lottieProps, style);\n /**\n * Make the hook variables/methods available through the provided 'lottieRef'\n */\n useEffect(() => {\n if (props.lottieRef) {\n props.lottieRef.current = {\n play,\n stop,\n pause,\n setSpeed,\n goToAndPlay,\n goToAndStop,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(_a = props.lottieRef) === null || _a === void 0 ? void 0 : _a.current]);\n return useLottieInteractivity({\n lottieObj: {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n },\n actions: (_b = interactivity === null || interactivity === void 0 ? void 0 : interactivity.actions) !== null && _b !== void 0 ? _b : [],\n mode: (_c = interactivity === null || interactivity === void 0 ? void 0 : interactivity.mode) !== null && _c !== void 0 ? _c : \"scroll\",\n });\n};\nexport default Lottie;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"91da9a77\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"and-webb:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkand_webb\"] = self[\"webpackChunkand_webb\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\nexport var SCOPE = '@scope'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @param {number} position\n * @return {number}\n */\nexport function indexof (value, search, position) {\n\treturn value.indexOf(search, position)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace, substr, match} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nexport function prefix (value, length, children) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// tab-size\n\t\tcase 4789:\n\t\t\treturn MOZ + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t\t// default: fallthrough to below\n\t\t\t}\n\t\t// flex, flex-direction, scroll-snap-type, writing-mode\n\t\tcase 6828: case 4268: case 2903:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/g, '') + (!match(value, /flex-|baseline/) ? MS + 'grid-row-' + replace(value, /flex-|-self/g, '') : '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/g, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// justify-self\n\t\tcase 4200:\n\t\t\tif (!match(value, /flex-|baseline/)) return MS + 'grid-column-align' + substr(value, length) + value\n\t\t\tbreak\n\t\t// grid-template-(columns|rows)\n\t\tcase 2592: case 3360:\n\t\t\treturn MS + replace(value, 'template-', '') + value\n\t\t// grid-(row|column)-start\n\t\tcase 4384: case 3616:\n\t\t\tif (children && children.some(function (element, index) { return length = index, match(element.props, /grid-\\w+-end/) })) {\n\t\t\t\treturn ~indexof(value + (children = children[length].value), 'span', 0) ? value : (MS + replace(value, '-start', '') + value + MS + 'grid-row-span:' + (~indexof(children, 'span', 0) ? match(children, /\\d+/) : +match(children, /\\d+/) - +match(value, /\\d+/)) + ';')\n\t\t\t}\n\t\t\treturn MS + replace(value, '-start', '') + value\n\t\t// grid-(row|column)-end\n\t\tcase 4896: case 4128:\n\t\t\treturn (children && children.some(function (element) { return match(element.props, /grid-\\w+-start/) })) ? value : MS + replace(replace(value, '-end', '-span'), 'span ', '') + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch', 0) ? prefix(replace(value, 'stretch', 'fill-available'), length, children) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// grid-(column|row)\n\t\tcase 5152: case 5920:\n\t\t\treturn replace(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (MS + a + ':' + b + f) + (c ? (MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// stick(y)?\n\t\t\tif (charat(value, length + 6) === 121)\n\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\tbreak\n\t\t// display: (flex|inline-flex|grid|inline-grid)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {\n\t\t\t\t// (inline-)?fle(x)\n\t\t\t\tcase 120:\n\t\t\t\t\treturn replace(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t\t// (inline-)?gri(d)\n\t\t\t\tcase 100:\n\t\t\t\t\treturn replace(value, ':', ':' + MS) + value\n\t\t\t}\n\t\t\tbreak\n\t\t// scroll-margin, scroll-margin-(top|right|bottom|left)\n\t\tcase 5719: case 2647: case 2135: case 3927: case 2391:\n\t\t\treturn replace(value, 'scroll-', 'scroll-snap-') + value\n\t}\n\n\treturn value\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine, filter, assign} from './Utility.js'\nimport {copy, lift, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(children = element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, callback = /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","declare let SC_DISABLE_SPEEDY: boolean | null | undefined;\ndeclare let __VERSION__: string;\n\nexport const SC_ATTR: string =\n (typeof process !== 'undefined' &&\n typeof process.env !== 'undefined' &&\n (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR)) ||\n 'data-styled';\n\nexport const SC_ATTR_ACTIVE = 'active';\nexport const SC_ATTR_VERSION = 'data-styled-version';\nexport const SC_VERSION = __VERSION__;\nexport const SPLITTER = '/*!sc*/\\n';\n\nexport const IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\n\nexport const DISABLE_SPEEDY = Boolean(\n typeof SC_DISABLE_SPEEDY === 'boolean'\n ? SC_DISABLE_SPEEDY\n : typeof process !== 'undefined' &&\n typeof process.env !== 'undefined' &&\n typeof process.env.REACT_APP_SC_DISABLE_SPEEDY !== 'undefined' &&\n process.env.REACT_APP_SC_DISABLE_SPEEDY !== ''\n ? process.env.REACT_APP_SC_DISABLE_SPEEDY === 'false'\n ? false\n : process.env.REACT_APP_SC_DISABLE_SPEEDY\n : typeof process !== 'undefined' &&\n typeof process.env !== 'undefined' &&\n typeof process.env.SC_DISABLE_SPEEDY !== 'undefined' &&\n process.env.SC_DISABLE_SPEEDY !== ''\n ? process.env.SC_DISABLE_SPEEDY === 'false'\n ? false\n : process.env.SC_DISABLE_SPEEDY\n : process.env.NODE_ENV !== 'production'\n);\n\n// Shared empty execution context when generating static styles\nexport const STATIC_EXECUTION_CONTEXT = {};\n","import { Dict } from '../types';\n\nexport const EMPTY_ARRAY = Object.freeze([]) as Readonly;\nexport const EMPTY_OBJECT = Object.freeze({}) as Readonly>;\n","import { useRef } from 'react';\n\nconst invalidHookCallRe = /invalid hook call/i;\nconst seen = new Set();\n\nexport const checkDynamicCreation = (displayName: string, componentId?: string | undefined) => {\n if (process.env.NODE_ENV !== 'production') {\n const parsedIdString = componentId ? ` with the id of \"${componentId}\"` : '';\n const message =\n `The component ${displayName}${parsedIdString} has been created dynamically.\\n` +\n \"You may see this warning because you've called styled inside another component.\\n\" +\n 'To resolve this only create new StyledComponents outside of any render method and function component.';\n\n // If a hook is called outside of a component:\n // React 17 and earlier throw an error\n // React 18 and above use console.error\n\n const originalConsoleError = console.error;\n try {\n let didNotCallInvalidHook = true;\n console.error = (consoleErrorMessage, ...consoleErrorArgs) => {\n // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n // be called outside of a React component.\n if (invalidHookCallRe.test(consoleErrorMessage)) {\n didNotCallInvalidHook = false;\n // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n seen.delete(message);\n } else {\n originalConsoleError(consoleErrorMessage, ...consoleErrorArgs);\n }\n };\n // We purposefully call `useRef` outside of a component and expect it to throw\n // If it doesn't, then we're inside another component.\n useRef();\n\n if (didNotCallInvalidHook && !seen.has(message)) {\n console.warn(message);\n seen.add(message);\n }\n } catch (error) {\n // The error here is expected, since we're expecting anything that uses `checkDynamicCreation` to\n // be called outside of a React component.\n if (invalidHookCallRe.test((error as Error).message)) {\n // This shouldn't happen, but resets `warningSeen` if we had this error happen intermittently\n seen.delete(message);\n }\n } finally {\n console.error = originalConsoleError;\n }\n }\n};\n","import { DefaultTheme, ExecutionProps } from '../types';\nimport { EMPTY_OBJECT } from './empties';\n\nexport default function determineTheme(\n props: ExecutionProps,\n providedTheme?: DefaultTheme | undefined,\n defaultProps: { theme?: DefaultTheme | undefined } = EMPTY_OBJECT\n): DefaultTheme | undefined {\n return (props.theme !== defaultProps.theme && props.theme) || providedTheme || defaultProps.theme;\n}\n","// Thanks to ReactDOMFactories for this handy list!\n\nconst elements = [\n 'a',\n 'abbr',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'base',\n 'bdi',\n 'bdo',\n 'big',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'keygen',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'menu',\n 'menuitem',\n 'meta',\n 'meter',\n 'nav',\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'u',\n 'ul',\n 'use',\n 'var',\n 'video',\n 'wbr', // SVG\n 'circle',\n 'clipPath',\n 'defs',\n 'ellipse',\n 'foreignObject',\n 'g',\n 'image',\n 'line',\n 'linearGradient',\n 'marker',\n 'mask',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialGradient',\n 'rect',\n 'stop',\n 'svg',\n 'text',\n 'tspan',\n] as const;\n\nexport default new Set(elements);\nexport type SupportedHTMLElements = (typeof elements)[number];\n","// Source: https://www.w3.org/TR/cssom-1/#serialize-an-identifier\n// Control characters and non-letter first symbols are not supported\nconst escapeRegex = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g;\n\nconst dashesAtEnds = /(^-|-$)/g;\n\n/**\n * TODO: Explore using CSS.escape when it becomes more available\n * in evergreen browsers.\n */\nexport default function escape(str: string) {\n return str // Replace all possible CSS selectors\n .replace(escapeRegex, '-') // Remove extraneous hyphens at the start and end\n .replace(dashesAtEnds, '');\n}\n","const AD_REPLACER_R = /(a)(d)/gi;\n\n/* This is the \"capacity\" of our alphabet i.e. 2x26 for all letters plus their capitalised\n * counterparts */\nconst charsLength = 52;\n\n/* start at 75 for 'a' until 'z' (25) and then start at 65 for capitalised letters */\nconst getAlphabeticChar = (code: number) => String.fromCharCode(code + (code > 25 ? 39 : 97));\n\n/* input a number, usually a hash and convert it to base-52 */\nexport default function generateAlphabeticName(code: number) {\n let name = '';\n let x;\n\n /* get a char and divide by alphabet-length */\n for (x = Math.abs(code); x > charsLength; x = (x / charsLength) | 0) {\n name = getAlphabeticChar(x % charsLength) + name;\n }\n\n return (getAlphabeticChar(x % charsLength) + name).replace(AD_REPLACER_R, '$1-$2');\n}\n","export const SEED = 5381;\n\n// When we have separate strings it's useful to run a progressive\n// version of djb2 where we pretend that we're still looping over\n// the same string\nexport const phash = (h: number, x: string) => {\n let i = x.length;\n\n while (i) {\n h = (h * 33) ^ x.charCodeAt(--i);\n }\n\n return h;\n};\n\n// This is a djb2 hashing function\nexport const hash = (x: string) => {\n return phash(SEED, x);\n};\n","import generateAlphabeticName from './generateAlphabeticName';\nimport { hash } from './hash';\n\nexport default function generateComponentId(str: string) {\n return generateAlphabeticName(hash(str) >>> 0);\n}\n","import { StyledTarget } from '../types';\n\nexport default function getComponentName(target: StyledTarget) {\n return (\n (process.env.NODE_ENV !== 'production' ? typeof target === 'string' && target : false) ||\n (target as Exclude, string>).displayName ||\n (target as Function).name ||\n 'Component'\n );\n}\n","import { StyledTarget } from '../types';\n\nexport default function isTag(target: StyledTarget<'web'>): target is string {\n return (\n typeof target === 'string' &&\n (process.env.NODE_ENV !== 'production'\n ? target.charAt(0) === target.charAt(0).toLowerCase()\n : true)\n );\n}\n","import React from 'react';\nimport { AnyComponent } from '../types';\n\nconst hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\n// copied from react-is\nconst REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nconst REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\n\n/**\n * Adapted from hoist-non-react-statics to avoid the react-is dependency.\n */\nconst REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true,\n};\n\nconst KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true,\n};\n\nconst FORWARD_REF_STATICS = {\n $$typeof: true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n};\n\nconst MEMO_STATICS = {\n $$typeof: true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true,\n};\n\nconst TYPE_STATICS = {\n [REACT_FORWARD_REF_TYPE]: FORWARD_REF_STATICS,\n [REACT_MEMO_TYPE]: MEMO_STATICS,\n};\n\ntype OmniComponent = AnyComponent;\n\n// adapted from react-is\nfunction isMemo(\n object: OmniComponent | React.MemoExoticComponent\n): object is React.MemoExoticComponent {\n const $$typeofType = 'type' in object && object.type.$$typeof;\n\n return $$typeofType === REACT_MEMO_TYPE;\n}\n\nfunction getStatics(component: OmniComponent) {\n // React v16.11 and below\n if (isMemo(component)) {\n return MEMO_STATICS;\n }\n\n // React v16.12 and above\n return '$$typeof' in component\n ? TYPE_STATICS[component['$$typeof'] as unknown as string]\n : REACT_STATICS;\n}\n\nconst defineProperty = Object.defineProperty;\nconst getOwnPropertyNames = Object.getOwnPropertyNames;\nconst getOwnPropertySymbols = Object.getOwnPropertySymbols;\nconst getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nconst getPrototypeOf = Object.getPrototypeOf;\nconst objectPrototype = Object.prototype;\n\ntype ExcludeList = {\n [key: string]: true;\n};\n\ntype NonReactStatics = {\n [key in Exclude<\n keyof S,\n S extends React.MemoExoticComponent\n ? keyof typeof MEMO_STATICS | keyof C\n : S extends React.ForwardRefExoticComponent\n ? keyof typeof FORWARD_REF_STATICS | keyof C\n : keyof typeof REACT_STATICS | keyof typeof KNOWN_STATICS | keyof C\n >]: S[key];\n};\n\nexport default function hoistNonReactStatics<\n T extends OmniComponent,\n S extends OmniComponent,\n C extends ExcludeList = {},\n>(targetComponent: T, sourceComponent: S, excludelist?: C | undefined) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n const inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, excludelist);\n }\n }\n\n let keys: (String | Symbol)[] = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n const targetStatics = getStatics(targetComponent);\n const sourceStatics = getStatics(sourceComponent);\n\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i] as unknown as string;\n if (\n !(key in KNOWN_STATICS) &&\n !(excludelist && excludelist[key]) &&\n !(sourceStatics && key in sourceStatics) &&\n !(targetStatics && key in targetStatics)\n ) {\n const descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor!);\n } catch (e) {\n /* ignore */\n }\n }\n }\n }\n\n return targetComponent as T & NonReactStatics;\n}\n","export default function isFunction(test: any): test is Function {\n return typeof test === 'function';\n}\n","import { StyledComponentBrand } from '../types';\n\nexport default function isStyledComponent(target: any): target is StyledComponentBrand {\n return typeof target === 'object' && 'styledComponentId' in target;\n}\n","/**\n * Convenience function for joining strings to form className chains\n */\nexport function joinStrings(a?: string | undefined, b?: string | undefined): string {\n return a && b ? `${a} ${b}` : a || b || '';\n}\n\nexport function joinStringArray(arr: string[], sep?: string | undefined): string {\n if (arr.length === 0) {\n return '';\n }\n\n let result = arr[0];\n for (let i = 1; i < arr.length; i++) {\n result += sep ? sep + arr[i] : arr[i];\n }\n return result;\n}\n","export default function isPlainObject(x: any): x is Record {\n return (\n x !== null &&\n typeof x === 'object' &&\n x.constructor.name === Object.name &&\n /* check for reasonable markers that the object isn't an element for react & preact/compat */\n !('props' in x && x.$$typeof)\n );\n}\n","import isPlainObject from './isPlainObject';\n\nfunction mixinRecursively(target: any, source: any, forceMerge = false) {\n /* only merge into POJOs, Arrays, but for top level objects only\n * allow to merge into anything by passing forceMerge = true */\n if (!forceMerge && !isPlainObject(target) && !Array.isArray(target)) {\n return source;\n }\n\n if (Array.isArray(source)) {\n for (let key = 0; key < source.length; key++) {\n target[key] = mixinRecursively(target[key], source[key]);\n }\n } else if (isPlainObject(source)) {\n for (const key in source) {\n target[key] = mixinRecursively(target[key], source[key]);\n }\n }\n\n return target;\n}\n\n/**\n * Arrays & POJOs merged recursively, other objects and value types are overridden\n * If target is not a POJO or an Array, it will get source properties injected via shallow merge\n * Source objects applied left to right. Mutates & returns target. Similar to lodash merge.\n */\nexport default function mixinDeep(target: any, ...sources: any[]) {\n for (const source of sources) {\n mixinRecursively(target, source, true);\n }\n\n return target;\n}\n","/**\n * If the Object prototype is frozen, the \"toString\" property is non-writable. This means that any objects which inherit this property\n * cannot have the property changed using a \"=\" assignment operator. If using strict mode, attempting that will cause an error. If not using\n * strict mode, attempting that will be silently ignored.\n *\n * If the Object prototype is frozen, inherited non-writable properties can still be shadowed using one of two mechanisms:\n *\n * 1. ES6 class methods: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#methods\n * 2. Using the `Object.defineProperty()` static method:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty\n *\n * However, this project uses Babel to transpile ES6 classes, and transforms ES6 class methods to use the assignment operator instead:\n * https://babeljs.io/docs/babel-plugin-transform-class-properties#options\n *\n * Therefore, the most compatible way to shadow the prototype's \"toString\" property is to define a new \"toString\" property on this object.\n */\nexport function setToString(object: object, toStringFn: () => string) {\n Object.defineProperty(object, 'toString', { value: toStringFn });\n}\n","import { Dict } from '../types';\nimport errorMap from './errors';\n\nconst ERRORS: Dict = process.env.NODE_ENV !== 'production' ? errorMap : {};\n\n/**\n * super basic version of sprintf\n */\nfunction format(...args: [string, ...any]) {\n let a = args[0];\n const b = [];\n\n for (let c = 1, len = args.length; c < len; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(d => {\n a = a.replace(/%[a-z]/, d);\n });\n\n return a;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n */\nexport default function throwStyledComponentsError(\n code: string | number,\n ...interpolations: any[]\n) {\n if (process.env.NODE_ENV === 'production') {\n return new Error(\n `An error occurred. See https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#${code} for more information.${\n interpolations.length > 0 ? ` Args: ${interpolations.join(', ')}` : ''\n }`\n );\n } else {\n return new Error(format(ERRORS[code], ...interpolations).trim());\n }\n}\n","import { SPLITTER } from '../constants';\nimport styledError from '../utils/error';\nimport { GroupedTag, Tag } from './types';\n\n/** Create a GroupedTag with an underlying Tag implementation */\nexport const makeGroupedTag = (tag: Tag) => {\n return new DefaultGroupedTag(tag);\n};\n\nconst BASE_SIZE = 1 << 9;\n\nconst DefaultGroupedTag = class DefaultGroupedTag implements GroupedTag {\n groupSizes: Uint32Array;\n length: number;\n tag: Tag;\n\n constructor(tag: Tag) {\n this.groupSizes = new Uint32Array(BASE_SIZE);\n this.length = BASE_SIZE;\n this.tag = tag;\n }\n\n indexOfGroup(group: number) {\n let index = 0;\n for (let i = 0; i < group; i++) {\n index += this.groupSizes[i];\n }\n\n return index;\n }\n\n insertRules(group: number, rules: string[]) {\n if (group >= this.groupSizes.length) {\n const oldBuffer = this.groupSizes;\n const oldSize = oldBuffer.length;\n\n let newSize = oldSize;\n while (group >= newSize) {\n newSize <<= 1;\n if (newSize < 0) {\n throw styledError(16, `${group}`);\n }\n }\n\n this.groupSizes = new Uint32Array(newSize);\n this.groupSizes.set(oldBuffer);\n this.length = newSize;\n\n for (let i = oldSize; i < newSize; i++) {\n this.groupSizes[i] = 0;\n }\n }\n\n let ruleIndex = this.indexOfGroup(group + 1);\n\n for (let i = 0, l = rules.length; i < l; i++) {\n if (this.tag.insertRule(ruleIndex, rules[i])) {\n this.groupSizes[group]++;\n ruleIndex++;\n }\n }\n }\n\n clearGroup(group: number) {\n if (group < this.length) {\n const length = this.groupSizes[group];\n const startIndex = this.indexOfGroup(group);\n const endIndex = startIndex + length;\n\n this.groupSizes[group] = 0;\n\n for (let i = startIndex; i < endIndex; i++) {\n this.tag.deleteRule(startIndex);\n }\n }\n }\n\n getGroup(group: number) {\n let css = '';\n if (group >= this.length || this.groupSizes[group] === 0) {\n return css;\n }\n\n const length = this.groupSizes[group];\n const startIndex = this.indexOfGroup(group);\n const endIndex = startIndex + length;\n\n for (let i = startIndex; i < endIndex; i++) {\n css += `${this.tag.getRule(i)}${SPLITTER}`;\n }\n\n return css;\n }\n};\n","import styledError from '../utils/error';\n\nconst MAX_SMI = 1 << (31 - 1);\n\nlet groupIDRegister: Map = new Map();\nlet reverseRegister: Map = new Map();\nlet nextFreeGroup = 1;\n\nexport const resetGroupIds = () => {\n groupIDRegister = new Map();\n reverseRegister = new Map();\n nextFreeGroup = 1;\n};\n\nexport const getGroupForId = (id: string): number => {\n if (groupIDRegister.has(id)) {\n return groupIDRegister.get(id) as any;\n }\n\n while (reverseRegister.has(nextFreeGroup)) {\n nextFreeGroup++;\n }\n\n const group = nextFreeGroup++;\n\n if (process.env.NODE_ENV !== 'production' && ((group | 0) < 0 || group > MAX_SMI)) {\n throw styledError(16, `${group}`);\n }\n\n groupIDRegister.set(id, group);\n reverseRegister.set(group, id);\n return group;\n};\n\nexport const getIdForGroup = (group: number): void | string => {\n return reverseRegister.get(group);\n};\n\nexport const setGroupForId = (id: string, group: number) => {\n // move pointer\n nextFreeGroup = group + 1;\n\n groupIDRegister.set(id, group);\n reverseRegister.set(group, id);\n};\n","import { SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION, SPLITTER } from '../constants';\nimport { getIdForGroup, setGroupForId } from './GroupIDAllocator';\nimport { Sheet } from './types';\n\nconst SELECTOR = `style[${SC_ATTR}][${SC_ATTR_VERSION}=\"${SC_VERSION}\"]`;\nconst MARKER_RE = new RegExp(`^${SC_ATTR}\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)`);\n\nexport const outputSheet = (sheet: Sheet) => {\n const tag = sheet.getTag();\n const { length } = tag;\n\n let css = '';\n for (let group = 0; group < length; group++) {\n const id = getIdForGroup(group);\n if (id === undefined) continue;\n\n const names = sheet.names.get(id);\n const rules = tag.getGroup(group);\n if (names === undefined || !names.size || rules.length === 0) continue;\n\n const selector = `${SC_ATTR}.g${group}[id=\"${id}\"]`;\n\n let content = '';\n if (names !== undefined) {\n names.forEach(name => {\n if (name.length > 0) {\n content += `${name},`;\n }\n });\n }\n\n // NOTE: It's easier to collect rules and have the marker\n // after the actual rules to simplify the rehydration\n css += `${rules}${selector}{content:\"${content}\"}${SPLITTER}`;\n }\n\n return css;\n};\n\nconst rehydrateNamesFromContent = (sheet: Sheet, id: string, content: string) => {\n const names = content.split(',');\n let name;\n\n for (let i = 0, l = names.length; i < l; i++) {\n if ((name = names[i])) {\n sheet.registerName(id, name);\n }\n }\n};\n\nconst rehydrateSheetFromTag = (sheet: Sheet, style: HTMLStyleElement) => {\n const parts = (style.textContent ?? '').split(SPLITTER);\n const rules: string[] = [];\n\n for (let i = 0, l = parts.length; i < l; i++) {\n const part = parts[i].trim();\n if (!part) continue;\n\n const marker = part.match(MARKER_RE);\n\n if (marker) {\n const group = parseInt(marker[1], 10) | 0;\n const id = marker[2];\n\n if (group !== 0) {\n // Rehydrate componentId to group index mapping\n setGroupForId(id, group);\n // Rehydrate names and rules\n // looks like: data-styled.g11[id=\"idA\"]{content:\"nameA,\"}\n rehydrateNamesFromContent(sheet, id, marker[3]);\n sheet.getTag().insertRules(group, rules);\n }\n\n rules.length = 0;\n } else {\n rules.push(part);\n }\n }\n};\n\nexport const rehydrateSheet = (sheet: Sheet) => {\n const nodes = document.querySelectorAll(SELECTOR);\n\n for (let i = 0, l = nodes.length; i < l; i++) {\n const node = nodes[i] as any as HTMLStyleElement;\n if (node && node.getAttribute(SC_ATTR) !== SC_ATTR_ACTIVE) {\n rehydrateSheetFromTag(sheet, node);\n\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n }\n};\n","declare let __webpack_nonce__: string;\n\nexport default function getNonce() {\n return typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n}\n","import { SC_ATTR, SC_ATTR_ACTIVE, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport { InsertionTarget } from '../types';\nimport styledError from '../utils/error';\nimport getNonce from '../utils/nonce';\n\n/** Find last style element if any inside target */\nconst findLastStyleTag = (target: InsertionTarget): void | HTMLStyleElement => {\n const arr = Array.from(target.querySelectorAll(`style[${SC_ATTR}]`));\n\n return arr[arr.length - 1];\n};\n\n/** Create a style element inside `target` or after the last */\nexport const makeStyleTag = (target?: InsertionTarget | undefined): HTMLStyleElement => {\n const head = document.head;\n const parent = target || head;\n const style = document.createElement('style');\n const prevStyle = findLastStyleTag(parent);\n const nextSibling = prevStyle !== undefined ? prevStyle.nextSibling : null;\n\n style.setAttribute(SC_ATTR, SC_ATTR_ACTIVE);\n style.setAttribute(SC_ATTR_VERSION, SC_VERSION);\n\n const nonce = getNonce();\n\n if (nonce) style.setAttribute('nonce', nonce);\n\n parent.insertBefore(style, nextSibling);\n\n return style;\n};\n\n/** Get the CSSStyleSheet instance for a given style element */\nexport const getSheet = (tag: HTMLStyleElement): CSSStyleSheet => {\n if (tag.sheet) {\n return tag.sheet as any as CSSStyleSheet;\n }\n\n // Avoid Firefox quirk where the style element might not have a sheet property\n const { styleSheets } = document;\n for (let i = 0, l = styleSheets.length; i < l; i++) {\n const sheet = styleSheets[i];\n if (sheet.ownerNode === tag) {\n return sheet as any as CSSStyleSheet;\n }\n }\n\n throw styledError(17);\n};\n","import { InsertionTarget } from '../types';\nimport { getSheet, makeStyleTag } from './dom';\nimport { SheetOptions, Tag } from './types';\n\n/** Create a CSSStyleSheet-like tag depending on the environment */\nexport const makeTag = ({ isServer, useCSSOMInjection, target }: SheetOptions) => {\n if (isServer) {\n return new VirtualTag(target);\n } else if (useCSSOMInjection) {\n return new CSSOMTag(target);\n } else {\n return new TextTag(target);\n }\n};\n\nexport const CSSOMTag = class CSSOMTag implements Tag {\n element: HTMLStyleElement;\n\n sheet: CSSStyleSheet;\n\n length: number;\n\n constructor(target?: InsertionTarget | undefined) {\n this.element = makeStyleTag(target);\n\n // Avoid Edge bug where empty style elements don't create sheets\n this.element.appendChild(document.createTextNode(''));\n\n this.sheet = getSheet(this.element);\n this.length = 0;\n }\n\n insertRule(index: number, rule: string): boolean {\n try {\n this.sheet.insertRule(rule, index);\n this.length++;\n return true;\n } catch (_error) {\n return false;\n }\n }\n\n deleteRule(index: number): void {\n this.sheet.deleteRule(index);\n this.length--;\n }\n\n getRule(index: number): string {\n const rule = this.sheet.cssRules[index];\n\n // Avoid IE11 quirk where cssText is inaccessible on some invalid rules\n if (rule && rule.cssText) {\n return rule.cssText;\n } else {\n return '';\n }\n }\n};\n\n/** A Tag that emulates the CSSStyleSheet API but uses text nodes */\nexport const TextTag = class TextTag implements Tag {\n element: HTMLStyleElement;\n nodes: NodeListOf;\n length: number;\n\n constructor(target?: InsertionTarget | undefined) {\n this.element = makeStyleTag(target);\n this.nodes = this.element.childNodes;\n this.length = 0;\n }\n\n insertRule(index: number, rule: string) {\n if (index <= this.length && index >= 0) {\n const node = document.createTextNode(rule);\n const refNode = this.nodes[index];\n this.element.insertBefore(node, refNode || null);\n this.length++;\n return true;\n } else {\n return false;\n }\n }\n\n deleteRule(index: number) {\n this.element.removeChild(this.nodes[index]);\n this.length--;\n }\n\n getRule(index: number) {\n if (index < this.length) {\n return this.nodes[index].textContent as string;\n } else {\n return '';\n }\n }\n};\n\n/** A completely virtual (server-side) Tag that doesn't manipulate the DOM */\nexport const VirtualTag = class VirtualTag implements Tag {\n rules: string[];\n\n length: number;\n\n constructor(_target?: InsertionTarget | undefined) {\n this.rules = [];\n this.length = 0;\n }\n\n insertRule(index: number, rule: string) {\n if (index <= this.length) {\n this.rules.splice(index, 0, rule);\n this.length++;\n return true;\n } else {\n return false;\n }\n }\n\n deleteRule(index: number) {\n this.rules.splice(index, 1);\n this.length--;\n }\n\n getRule(index: number) {\n if (index < this.length) {\n return this.rules[index];\n } else {\n return '';\n }\n }\n};\n","import { DISABLE_SPEEDY, IS_BROWSER } from '../constants';\nimport { InsertionTarget } from '../types';\nimport { EMPTY_OBJECT } from '../utils/empties';\nimport { setToString } from '../utils/setToString';\nimport { makeGroupedTag } from './GroupedTag';\nimport { getGroupForId } from './GroupIDAllocator';\nimport { outputSheet, rehydrateSheet } from './Rehydration';\nimport { makeTag } from './Tag';\nimport { GroupedTag, Sheet, SheetOptions } from './types';\n\nlet SHOULD_REHYDRATE = IS_BROWSER;\n\ntype SheetConstructorArgs = {\n isServer?: boolean;\n useCSSOMInjection?: boolean;\n target?: InsertionTarget | undefined;\n};\n\ntype GlobalStylesAllocationMap = {\n [key: string]: number;\n};\ntype NamesAllocationMap = Map>;\n\nconst defaultOptions: SheetOptions = {\n isServer: !IS_BROWSER,\n useCSSOMInjection: !DISABLE_SPEEDY,\n};\n\n/** Contains the main stylesheet logic for stringification and caching */\nexport default class StyleSheet implements Sheet {\n gs: GlobalStylesAllocationMap;\n names: NamesAllocationMap;\n options: SheetOptions;\n server: boolean;\n tag?: GroupedTag | undefined;\n\n /** Register a group ID to give it an index */\n static registerId(id: string): number {\n return getGroupForId(id);\n }\n\n constructor(\n options: SheetConstructorArgs = EMPTY_OBJECT as Object,\n globalStyles: GlobalStylesAllocationMap = {},\n names?: NamesAllocationMap | undefined\n ) {\n this.options = {\n ...defaultOptions,\n ...options,\n };\n\n this.gs = globalStyles;\n this.names = new Map(names as NamesAllocationMap);\n this.server = !!options.isServer;\n\n // We rehydrate only once and use the sheet that is created first\n if (!this.server && IS_BROWSER && SHOULD_REHYDRATE) {\n SHOULD_REHYDRATE = false;\n rehydrateSheet(this);\n }\n\n setToString(this, () => outputSheet(this));\n }\n\n rehydrate(): void {\n if (!this.server && IS_BROWSER) {\n rehydrateSheet(this);\n }\n }\n\n reconstructWithOptions(options: SheetConstructorArgs, withNames = true) {\n return new StyleSheet(\n { ...this.options, ...options },\n this.gs,\n (withNames && this.names) || undefined\n );\n }\n\n allocateGSInstance(id: string) {\n return (this.gs[id] = (this.gs[id] || 0) + 1);\n }\n\n /** Lazily initialises a GroupedTag for when it's actually needed */\n getTag() {\n return this.tag || (this.tag = makeGroupedTag(makeTag(this.options)));\n }\n\n /** Check whether a name is known for caching */\n hasNameForId(id: string, name: string): boolean {\n return this.names.has(id) && (this.names.get(id) as any).has(name);\n }\n\n /** Mark a group's name as known for caching */\n registerName(id: string, name: string) {\n getGroupForId(id);\n\n if (!this.names.has(id)) {\n const groupNames = new Set();\n groupNames.add(name);\n this.names.set(id, groupNames);\n } else {\n (this.names.get(id) as any).add(name);\n }\n }\n\n /** Insert new rules which also marks the name as known */\n insertRules(id: string, name: string, rules: string | string[]) {\n this.registerName(id, name);\n this.getTag().insertRules(getGroupForId(id), rules);\n }\n\n /** Clears all cached names for a given group ID */\n clearNames(id: string) {\n if (this.names.has(id)) {\n (this.names.get(id) as any).clear();\n }\n }\n\n /** Clears all rules for a given group ID */\n clearRules(id: string) {\n this.getTag().clearGroup(getGroupForId(id));\n this.clearNames(id);\n }\n\n /** Clears the entire tag which deletes all rules but not its names */\n clearTag() {\n // NOTE: This does not clear the names, since it's only used during SSR\n // so that we can continuously output only new rules\n this.tag = undefined;\n }\n}\n","import * as stylis from 'stylis';\nimport { Stringifier } from '../types';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from './empties';\nimport throwStyledError from './error';\nimport { SEED, phash } from './hash';\n\nconst AMP_REGEX = /&/g;\nconst COMMENT_REGEX = /^\\s*\\/\\/.*$/gm;\n\nexport type ICreateStylisInstance = {\n options?: { namespace?: string | undefined; prefix?: boolean | undefined } | undefined;\n plugins?: stylis.Middleware[] | undefined;\n};\n\n/**\n * Takes an element and recurses through it's rules added the namespace to the start of each selector.\n * Takes into account media queries by recursing through child rules if they are present.\n */\nfunction recursivelySetNamepace(compiled: stylis.Element[], namespace: String): stylis.Element[] {\n return compiled.map(rule => {\n if (rule.type === 'rule') {\n // add the namespace to the start\n rule.value = `${namespace} ${rule.value}`;\n // add the namespace after each comma for subsequent selectors.\n rule.value = rule.value.replaceAll(',', `,${namespace} `);\n rule.props = (rule.props as string[]).map(prop => {\n return `${namespace} ${prop}`;\n });\n }\n\n if (Array.isArray(rule.children) && rule.type !== '@keyframes') {\n rule.children = recursivelySetNamepace(rule.children, namespace);\n }\n return rule;\n });\n}\n\nexport default function createStylisInstance(\n {\n options = EMPTY_OBJECT as object,\n plugins = EMPTY_ARRAY as unknown as stylis.Middleware[],\n }: ICreateStylisInstance = EMPTY_OBJECT as object\n) {\n let _componentId: string;\n let _selector: string;\n let _selectorRegexp: RegExp;\n\n const selfReferenceReplacer = (match: string, offset: number, string: string) => {\n if (\n /**\n * We only want to refer to the static class directly if the selector is part of a\n * self-reference selector `& + & { color: red; }`\n */\n string.startsWith(_selector) &&\n string.endsWith(_selector) &&\n string.replaceAll(_selector, '').length > 0\n ) {\n return `.${_componentId}`;\n }\n\n return match;\n };\n\n /**\n * When writing a style like\n *\n * & + & {\n * color: red;\n * }\n *\n * The second ampersand should be a reference to the static component class. stylis\n * has no knowledge of static class so we have to intelligently replace the base selector.\n *\n * https://github.com/thysultan/stylis.js/tree/v4.0.2#abstract-syntax-structure\n */\n const selfReferenceReplacementPlugin: stylis.Middleware = element => {\n if (element.type === stylis.RULESET && element.value.includes('&')) {\n (element.props as string[])[0] = element.props[0]\n // catch any hanging references that stylis missed\n .replace(AMP_REGEX, _selector)\n .replace(_selectorRegexp, selfReferenceReplacer);\n }\n };\n\n const middlewares = plugins.slice();\n\n middlewares.push(selfReferenceReplacementPlugin);\n\n /**\n * Enables automatic vendor-prefixing for styles.\n */\n if (options.prefix) {\n middlewares.push(stylis.prefixer);\n }\n\n middlewares.push(stylis.stringify);\n\n const stringifyRules: Stringifier = (\n css: string,\n selector = '',\n /**\n * This \"prefix\" referes to a _selector_ prefix.\n */\n prefix = '',\n componentId = '&'\n ) => {\n // stylis has no concept of state to be passed to plugins\n // but since JS is single-threaded, we can rely on that to ensure\n // these properties stay in sync with the current stylis run\n _componentId = componentId;\n _selector = selector;\n _selectorRegexp = new RegExp(`\\\\${_selector}\\\\b`, 'g');\n\n const flatCSS = css.replace(COMMENT_REGEX, '');\n let compiled = stylis.compile(\n prefix || selector ? `${prefix} ${selector} { ${flatCSS} }` : flatCSS\n );\n\n if (options.namespace) {\n compiled = recursivelySetNamepace(compiled, options.namespace);\n }\n\n const stack: string[] = [];\n\n stylis.serialize(\n compiled,\n stylis.middleware(middlewares.concat(stylis.rulesheet(value => stack.push(value))))\n );\n\n return stack;\n };\n\n stringifyRules.hash = plugins.length\n ? plugins\n .reduce((acc, plugin) => {\n if (!plugin.name) {\n throwStyledError(15);\n }\n\n return phash(acc, plugin.name);\n }, SEED)\n .toString()\n : '';\n\n return stringifyRules;\n}\n","import React, { useContext, useEffect, useMemo, useState } from 'react';\nimport shallowequal from 'shallowequal';\nimport type stylis from 'stylis';\nimport StyleSheet from '../sheet';\nimport { InsertionTarget, ShouldForwardProp, Stringifier } from '../types';\nimport createStylisInstance from '../utils/stylis';\n\nexport const mainSheet: StyleSheet = new StyleSheet();\nexport const mainStylis: Stringifier = createStylisInstance();\n\nexport type IStyleSheetContext = {\n shouldForwardProp?: ShouldForwardProp<'web'> | undefined;\n styleSheet: StyleSheet;\n stylis: Stringifier;\n};\n\nexport const StyleSheetContext = React.createContext({\n shouldForwardProp: undefined,\n styleSheet: mainSheet,\n stylis: mainStylis,\n});\n\nexport const StyleSheetConsumer = StyleSheetContext.Consumer;\n\nexport type IStylisContext = Stringifier | void;\nexport const StylisContext = React.createContext(undefined);\nexport const StylisConsumer = StylisContext.Consumer;\n\nexport function useStyleSheetContext() {\n return useContext(StyleSheetContext);\n}\n\nexport type IStyleSheetManager = React.PropsWithChildren<{\n /**\n * If desired, you can pass this prop to disable \"speedy\" insertion mode, which\n * uses the browser [CSSOM APIs](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet).\n * When disabled, rules are inserted as simple text into style blocks.\n */\n disableCSSOMInjection?: undefined | boolean;\n /**\n * If you are working exclusively with modern browsers, vendor prefixes can often be omitted\n * to reduce the weight of CSS on the page.\n */\n enableVendorPrefixes?: undefined | boolean;\n /**\n * Provide an optional selector to be prepended to all generated style rules.\n */\n namespace?: undefined | string;\n /**\n * Create and provide your own `StyleSheet` if necessary for advanced SSR scenarios.\n */\n sheet?: undefined | StyleSheet;\n /**\n * Starting in v6, styled-components no longer does its own prop validation\n * and recommends use of transient props \"$prop\" to pass style-only props to\n * components. If for some reason you are not able to use transient props, a\n * prop validation function can be provided via `StyleSheetManager`, such as\n * `@emotion/is-prop-valid`.\n *\n * When the return value is `true`, props will be forwarded to the DOM/underlying\n * component. If return value is `false`, the prop will be discarded after styles\n * are calculated.\n *\n * Manually composing `styled.{element}.withConfig({shouldForwardProp})` will\n * override this default.\n */\n shouldForwardProp?: undefined | IStyleSheetContext['shouldForwardProp'];\n /**\n * An array of plugins to be run by stylis (style processor) during compilation.\n * Check out [what's available on npm*](https://www.npmjs.com/search?q=keywords%3Astylis).\n *\n * \\* The plugin(s) must be compatible with stylis v4 or above.\n */\n stylisPlugins?: undefined | stylis.Middleware[];\n /**\n * Provide an alternate DOM node to host generated styles; useful for iframes.\n */\n target?: undefined | InsertionTarget;\n}>;\n\nexport function StyleSheetManager(props: IStyleSheetManager): React.JSX.Element {\n const [plugins, setPlugins] = useState(props.stylisPlugins);\n const { styleSheet } = useStyleSheetContext();\n\n const resolvedStyleSheet = useMemo(() => {\n let sheet = styleSheet;\n\n if (props.sheet) {\n sheet = props.sheet;\n } else if (props.target) {\n sheet = sheet.reconstructWithOptions({ target: props.target }, false);\n }\n\n if (props.disableCSSOMInjection) {\n sheet = sheet.reconstructWithOptions({ useCSSOMInjection: false });\n }\n\n return sheet;\n }, [props.disableCSSOMInjection, props.sheet, props.target, styleSheet]);\n\n const stylis = useMemo(\n () =>\n createStylisInstance({\n options: { namespace: props.namespace, prefix: props.enableVendorPrefixes },\n plugins,\n }),\n [props.enableVendorPrefixes, props.namespace, plugins]\n );\n\n useEffect(() => {\n if (!shallowequal(plugins, props.stylisPlugins)) setPlugins(props.stylisPlugins);\n }, [props.stylisPlugins]);\n\n const styleSheetContextValue = useMemo(\n () => ({\n shouldForwardProp: props.shouldForwardProp,\n styleSheet: resolvedStyleSheet,\n stylis,\n }),\n [props.shouldForwardProp, resolvedStyleSheet, stylis]\n );\n\n return (\n \n {props.children}\n \n );\n}\n","import StyleSheet from '../sheet';\nimport { Keyframes as KeyframesType, Stringifier } from '../types';\nimport styledError from '../utils/error';\nimport { setToString } from '../utils/setToString';\nimport { mainStylis } from './StyleSheetManager';\n\nexport default class Keyframes implements KeyframesType {\n id: string;\n name: string;\n rules: string;\n\n constructor(name: string, rules: string) {\n this.name = name;\n this.id = `sc-keyframes-${name}`;\n this.rules = rules;\n\n setToString(this, () => {\n throw styledError(12, String(this.name));\n });\n }\n\n inject = (styleSheet: StyleSheet, stylisInstance: Stringifier = mainStylis): void => {\n const resolvedName = this.name + stylisInstance.hash;\n\n if (!styleSheet.hasNameForId(this.id, resolvedName)) {\n styleSheet.insertRules(\n this.id,\n resolvedName,\n stylisInstance(this.rules, resolvedName, '@keyframes')\n );\n }\n };\n\n getName(stylisInstance: Stringifier = mainStylis): string {\n return this.name + stylisInstance.hash;\n }\n}\n","const isUpper = (c: string) => c >= 'A' && c <= 'Z';\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n */\nexport default function hyphenateStyleName(string: string): string {\n let output = '';\n\n for (let i = 0; i < string.length; i++) {\n const c = string[i];\n // Check for CSS variable prefix\n if (i === 1 && c === '-' && string[0] === '-') {\n return string;\n }\n\n if (isUpper(c)) {\n output += '-' + c.toLowerCase();\n } else {\n output += c;\n }\n }\n\n return output.startsWith('ms-') ? '-' + output : output;\n}\n","import Keyframes from '../models/Keyframes';\nimport StyleSheet from '../sheet';\nimport {\n AnyComponent,\n Dict,\n ExecutionContext,\n Interpolation,\n IStyledComponent,\n RuleSet,\n Stringifier,\n StyledObject,\n} from '../types';\nimport addUnitIfNeeded from './addUnitIfNeeded';\nimport { EMPTY_ARRAY } from './empties';\nimport getComponentName from './getComponentName';\nimport hyphenate from './hyphenateStyleName';\nimport isFunction from './isFunction';\nimport isPlainObject from './isPlainObject';\nimport isStatelessFunction from './isStatelessFunction';\nimport isStyledComponent from './isStyledComponent';\n\n/**\n * It's falsish not falsy because 0 is allowed.\n */\nconst isFalsish = (chunk: any): chunk is undefined | null | false | '' =>\n chunk === undefined || chunk === null || chunk === false || chunk === '';\n\nexport const objToCssArray = (obj: Dict): string[] => {\n const rules = [];\n\n for (const key in obj) {\n const val = obj[key];\n if (!obj.hasOwnProperty(key) || isFalsish(val)) continue;\n\n // @ts-expect-error Property 'isCss' does not exist on type 'any[]'\n if ((Array.isArray(val) && val.isCss) || isFunction(val)) {\n rules.push(`${hyphenate(key)}:`, val, ';');\n } else if (isPlainObject(val)) {\n rules.push(`${key} {`, ...objToCssArray(val), '}');\n } else {\n rules.push(`${hyphenate(key)}: ${addUnitIfNeeded(key, val)};`);\n }\n }\n\n return rules;\n};\n\nexport default function flatten(\n chunk: Interpolation,\n executionContext?: (ExecutionContext & Props) | undefined,\n styleSheet?: StyleSheet | undefined,\n stylisInstance?: Stringifier | undefined\n): RuleSet {\n if (isFalsish(chunk)) {\n return [];\n }\n\n /* Handle other components */\n if (isStyledComponent(chunk)) {\n return [`.${(chunk as unknown as IStyledComponent<'web', any>).styledComponentId}`];\n }\n\n /* Either execute or defer the function */\n if (isFunction(chunk)) {\n if (isStatelessFunction(chunk) && executionContext) {\n const result = chunk(executionContext);\n\n if (\n process.env.NODE_ENV !== 'production' &&\n typeof result === 'object' &&\n !Array.isArray(result) &&\n !(result instanceof Keyframes) &&\n !isPlainObject(result) &&\n result !== null\n ) {\n console.error(\n `${getComponentName(\n chunk as AnyComponent\n )} is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.`\n );\n }\n\n return flatten(result, executionContext, styleSheet, stylisInstance);\n } else {\n return [chunk as unknown as IStyledComponent<'web'>];\n }\n }\n\n if (chunk instanceof Keyframes) {\n if (styleSheet) {\n chunk.inject(styleSheet, stylisInstance);\n return [chunk.getName(stylisInstance)];\n } else {\n return [chunk];\n }\n }\n\n /* Handle objects */\n if (isPlainObject(chunk)) {\n return objToCssArray(chunk as StyledObject);\n }\n\n if (!Array.isArray(chunk)) {\n return [chunk.toString()];\n }\n\n return flatMap(chunk, chunklet =>\n flatten(chunklet, executionContext, styleSheet, stylisInstance)\n );\n}\n\nfunction flatMap(array: T[], transform: (value: T, index: number, array: T[]) => U[]): U[] {\n return Array.prototype.concat.apply(EMPTY_ARRAY, array.map(transform));\n}\n","import unitless from '@emotion/unitless';\n\n// Taken from https://github.com/facebook/react/blob/b87aabdfe1b7461e7331abb3601d9e6bb27544bc/packages/react-dom/src/shared/dangerousStyleValue.js\nexport default function addUnitIfNeeded(name: string, value: any) {\n // https://github.com/amilajack/eslint-plugin-flowtype-errors/issues/133\n if (value == null || typeof value === 'boolean' || value === '') {\n return '';\n }\n\n if (typeof value === 'number' && value !== 0 && !(name in unitless) && !name.startsWith('--')) {\n return `${value}px`; // Presumes implicit 'px' suffix for unitless numbers except for CSS variables\n }\n\n return String(value).trim();\n}\n","import isFunction from './isFunction';\n\nexport default function isStatelessFunction(test: any): test is Function {\n return isFunction(test) && !(test.prototype && test.prototype.isReactComponent);\n}\n","import { RuleSet } from '../types';\nimport isFunction from './isFunction';\nimport isStyledComponent from './isStyledComponent';\n\nexport default function isStaticRules(rules: RuleSet) {\n for (let i = 0; i < rules.length; i += 1) {\n const rule = rules[i];\n\n if (isFunction(rule) && !isStyledComponent(rule)) {\n // functions are allowed to be static if they're just being\n // used to get the classname of a nested styled component\n return false;\n }\n }\n\n return true;\n}\n","import { SC_VERSION } from '../constants';\nimport StyleSheet from '../sheet';\nimport { ExecutionContext, RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport generateName from '../utils/generateAlphabeticName';\nimport { hash, phash } from '../utils/hash';\nimport isStaticRules from '../utils/isStaticRules';\nimport { joinStringArray, joinStrings } from '../utils/joinStrings';\n\nconst SEED = hash(SC_VERSION);\n\n/**\n * ComponentStyle is all the CSS-specific stuff, not the React-specific stuff.\n */\nexport default class ComponentStyle {\n baseHash: number;\n baseStyle: ComponentStyle | null | undefined;\n componentId: string;\n isStatic: boolean;\n rules: RuleSet;\n staticRulesId: string;\n\n constructor(rules: RuleSet, componentId: string, baseStyle?: ComponentStyle | undefined) {\n this.rules = rules;\n this.staticRulesId = '';\n this.isStatic =\n process.env.NODE_ENV === 'production' &&\n (baseStyle === undefined || baseStyle.isStatic) &&\n isStaticRules(rules);\n this.componentId = componentId;\n this.baseHash = phash(SEED, componentId);\n this.baseStyle = baseStyle;\n\n // NOTE: This registers the componentId, which ensures a consistent order\n // for this component's styles compared to others\n StyleSheet.registerId(componentId);\n }\n\n generateAndInjectStyles(\n executionContext: ExecutionContext,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ): string {\n let names = this.baseStyle\n ? this.baseStyle.generateAndInjectStyles(executionContext, styleSheet, stylis)\n : '';\n\n // force dynamic classnames if user-supplied stylis plugins are in use\n if (this.isStatic && !stylis.hash) {\n if (this.staticRulesId && styleSheet.hasNameForId(this.componentId, this.staticRulesId)) {\n names = joinStrings(names, this.staticRulesId);\n } else {\n const cssStatic = joinStringArray(\n flatten(this.rules, executionContext, styleSheet, stylis) as string[]\n );\n const name = generateName(phash(this.baseHash, cssStatic) >>> 0);\n\n if (!styleSheet.hasNameForId(this.componentId, name)) {\n const cssStaticFormatted = stylis(cssStatic, `.${name}`, undefined, this.componentId);\n styleSheet.insertRules(this.componentId, name, cssStaticFormatted);\n }\n\n names = joinStrings(names, name);\n this.staticRulesId = name;\n }\n } else {\n let dynamicHash = phash(this.baseHash, stylis.hash);\n let css = '';\n\n for (let i = 0; i < this.rules.length; i++) {\n const partRule = this.rules[i];\n\n if (typeof partRule === 'string') {\n css += partRule;\n\n if (process.env.NODE_ENV !== 'production') dynamicHash = phash(dynamicHash, partRule);\n } else if (partRule) {\n const partString = joinStringArray(\n flatten(partRule, executionContext, styleSheet, stylis) as string[]\n );\n // The same value can switch positions in the array, so we include \"i\" in the hash.\n dynamicHash = phash(dynamicHash, partString + i);\n css += partString;\n }\n }\n\n if (css) {\n const name = generateName(dynamicHash >>> 0);\n\n if (!styleSheet.hasNameForId(this.componentId, name)) {\n styleSheet.insertRules(\n this.componentId,\n name,\n stylis(css, `.${name}`, undefined, this.componentId)\n );\n }\n\n names = joinStrings(names, name);\n }\n }\n\n return names;\n }\n}\n","import React, { useContext, useMemo } from 'react';\nimport styledError from '../utils/error';\nimport isFunction from '../utils/isFunction';\n\n/**\n * Override DefaultTheme to get accurate typings for your project.\n *\n * ```\n * // create styled-components.d.ts in your project source\n * // if it isn't being picked up, check tsconfig compilerOptions.types\n * import type { CSSProp } from \"styled-components\";\n * import Theme from './theme';\n *\n * type ThemeType = typeof Theme;\n *\n * declare module \"styled-components\" {\n * export interface DefaultTheme extends ThemeType {}\n * }\n *\n * declare module \"react\" {\n * interface DOMAttributes {\n * css?: CSSProp;\n * }\n * }\n * ```\n */\nexport interface DefaultTheme {\n [key: string]: any;\n}\n\ntype ThemeFn = (outerTheme?: DefaultTheme | undefined) => DefaultTheme;\ntype ThemeArgument = DefaultTheme | ThemeFn;\n\ntype Props = {\n children?: React.ReactNode;\n theme: ThemeArgument;\n};\n\nexport const ThemeContext = React.createContext(undefined);\n\nexport const ThemeConsumer = ThemeContext.Consumer;\n\nfunction mergeTheme(theme: ThemeArgument, outerTheme?: DefaultTheme | undefined): DefaultTheme {\n if (!theme) {\n throw styledError(14);\n }\n\n if (isFunction(theme)) {\n const themeFn = theme as ThemeFn;\n const mergedTheme = themeFn(outerTheme);\n\n if (\n process.env.NODE_ENV !== 'production' &&\n (mergedTheme === null || Array.isArray(mergedTheme) || typeof mergedTheme !== 'object')\n ) {\n throw styledError(7);\n }\n\n return mergedTheme;\n }\n\n if (Array.isArray(theme) || typeof theme !== 'object') {\n throw styledError(8);\n }\n\n return outerTheme ? { ...outerTheme, ...theme } : theme;\n}\n\n/**\n * Returns the current theme (as provided by the closest ancestor `ThemeProvider`.)\n *\n * If no `ThemeProvider` is found, the function will error. If you need access to the theme in an\n * uncertain composition scenario, `React.useContext(ThemeContext)` will not emit an error if there\n * is no `ThemeProvider` ancestor.\n */\nexport function useTheme(): DefaultTheme {\n const theme = useContext(ThemeContext);\n\n if (!theme) {\n throw styledError(18);\n }\n\n return theme;\n}\n\n/**\n * Provide a theme to an entire react component tree via context\n */\nexport default function ThemeProvider(props: Props): React.JSX.Element | null {\n const outerTheme = React.useContext(ThemeContext);\n const themeContext = useMemo(\n () => mergeTheme(props.theme, outerTheme),\n [props.theme, outerTheme]\n );\n\n if (!props.children) {\n return null;\n }\n\n return {props.children};\n}\n","import isPropValid from '@emotion/is-prop-valid';\nimport React, { createElement, Ref, useDebugValue } from 'react';\nimport { SC_VERSION } from '../constants';\nimport type {\n AnyComponent,\n Attrs,\n BaseObject,\n Dict,\n ExecutionContext,\n ExecutionProps,\n IStyledComponent,\n IStyledComponentFactory,\n IStyledStatics,\n OmitNever,\n RuleSet,\n StyledOptions,\n WebTarget,\n} from '../types';\nimport { checkDynamicCreation } from '../utils/checkDynamicCreation';\nimport createWarnTooManyClasses from '../utils/createWarnTooManyClasses';\nimport determineTheme from '../utils/determineTheme';\nimport domElements from '../utils/domElements';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '../utils/empties';\nimport escape from '../utils/escape';\nimport generateComponentId from '../utils/generateComponentId';\nimport generateDisplayName from '../utils/generateDisplayName';\nimport hoist from '../utils/hoist';\nimport isFunction from '../utils/isFunction';\nimport isStyledComponent from '../utils/isStyledComponent';\nimport isTag from '../utils/isTag';\nimport { joinStrings } from '../utils/joinStrings';\nimport merge from '../utils/mixinDeep';\nimport { setToString } from '../utils/setToString';\nimport ComponentStyle from './ComponentStyle';\nimport { useStyleSheetContext } from './StyleSheetManager';\nimport { DefaultTheme, ThemeContext } from './ThemeProvider';\n\nconst identifiers: { [key: string]: number } = {};\n\n/* We depend on components having unique IDs */\nfunction generateId(\n displayName?: string | undefined,\n parentComponentId?: string | undefined\n): string {\n const name = typeof displayName !== 'string' ? 'sc' : escape(displayName);\n // Ensure that no displayName can lead to duplicate componentIds\n identifiers[name] = (identifiers[name] || 0) + 1;\n\n const componentId = `${name}-${generateComponentId(\n // SC_VERSION gives us isolation between multiple runtimes on the page at once\n // this is improved further with use of the babel plugin \"namespace\" feature\n SC_VERSION + name + identifiers[name]\n )}`;\n\n return parentComponentId ? `${parentComponentId}-${componentId}` : componentId;\n}\n\nfunction useInjectedStyle(\n componentStyle: ComponentStyle,\n resolvedAttrs: T\n) {\n const ssc = useStyleSheetContext();\n\n const className = componentStyle.generateAndInjectStyles(\n resolvedAttrs,\n ssc.styleSheet,\n ssc.stylis\n );\n\n if (process.env.NODE_ENV !== 'production') useDebugValue(className);\n\n return className;\n}\n\nfunction resolveContext(\n attrs: Attrs & Props>[],\n props: React.HTMLAttributes & ExecutionProps & Props,\n theme: DefaultTheme\n) {\n const context: React.HTMLAttributes &\n ExecutionContext &\n Props & { [key: string]: any; class?: string; ref?: React.Ref } = {\n ...props,\n // unset, add `props.className` back at the end so props always \"wins\"\n className: undefined,\n theme,\n };\n let attrDef;\n\n for (let i = 0; i < attrs.length; i += 1) {\n attrDef = attrs[i];\n const resolvedAttrDef = isFunction(attrDef) ? attrDef(context) : attrDef;\n\n for (const key in resolvedAttrDef) {\n context[key as keyof typeof context] =\n key === 'className'\n ? joinStrings(context[key] as string | undefined, resolvedAttrDef[key] as string)\n : key === 'style'\n ? { ...context[key], ...resolvedAttrDef[key] }\n : resolvedAttrDef[key as keyof typeof resolvedAttrDef];\n }\n }\n\n if (props.className) {\n context.className = joinStrings(context.className, props.className);\n }\n\n return context;\n}\n\nlet seenUnknownProps = new Set();\n\nfunction useStyledComponentImpl(\n forwardedComponent: IStyledComponent<'web', Props>,\n props: ExecutionProps & Props,\n forwardedRef: Ref\n) {\n const {\n attrs: componentAttrs,\n componentStyle,\n defaultProps,\n foldedComponentIds,\n styledComponentId,\n target,\n } = forwardedComponent;\n\n const contextTheme = React.useContext(ThemeContext);\n const ssc = useStyleSheetContext();\n const shouldForwardProp = forwardedComponent.shouldForwardProp || ssc.shouldForwardProp;\n\n if (process.env.NODE_ENV !== 'production') useDebugValue(styledComponentId);\n\n // NOTE: the non-hooks version only subscribes to this when !componentStyle.isStatic,\n // but that'd be against the rules-of-hooks. We could be naughty and do it anyway as it\n // should be an immutable value, but behave for now.\n const theme = determineTheme(props, contextTheme, defaultProps) || EMPTY_OBJECT;\n\n const context = resolveContext(componentAttrs, props, theme);\n const elementToBeCreated: WebTarget = context.as || target;\n const propsForElement: Dict = {};\n\n for (const key in context) {\n if (context[key] === undefined) {\n // Omit undefined values from props passed to wrapped element.\n // This enables using .attrs() to remove props, for example.\n } else if (key[0] === '$' || key === 'as' || (key === 'theme' && context.theme === theme)) {\n // Omit transient props and execution props.\n } else if (key === 'forwardedAs') {\n propsForElement.as = context.forwardedAs;\n } else if (!shouldForwardProp || shouldForwardProp(key, elementToBeCreated)) {\n propsForElement[key] = context[key];\n\n if (\n !shouldForwardProp &&\n process.env.NODE_ENV === 'development' &&\n !isPropValid(key) &&\n !seenUnknownProps.has(key) &&\n // Only warn on DOM Element.\n domElements.has(elementToBeCreated as any)\n ) {\n seenUnknownProps.add(key);\n console.warn(\n `styled-components: it looks like an unknown prop \"${key}\" is being sent through to the DOM, which will likely trigger a React console error. If you would like automatic filtering of unknown props, you can opt-into that behavior via \\`\\` (connect an API like \\`@emotion/is-prop-valid\\`) or consider using transient props (\\`$\\` prefix for automatic filtering.)`\n );\n }\n }\n }\n\n const generatedClassName = useInjectedStyle(componentStyle, context);\n\n if (process.env.NODE_ENV !== 'production' && forwardedComponent.warnTooManyClasses) {\n forwardedComponent.warnTooManyClasses(generatedClassName);\n }\n\n let classString = joinStrings(foldedComponentIds, styledComponentId);\n if (generatedClassName) {\n classString += ' ' + generatedClassName;\n }\n if (context.className) {\n classString += ' ' + context.className;\n }\n\n propsForElement[\n // handle custom elements which React doesn't properly alias\n isTag(elementToBeCreated) &&\n !domElements.has(elementToBeCreated as Extract)\n ? 'class'\n : 'className'\n ] = classString;\n\n // forwardedRef is coming from React.forwardRef.\n // But it might not exist. Since React 19 handles `ref` like a prop, it only define it if there is a value.\n // We don't want to inject an empty ref.\n if (forwardedRef) {\n propsForElement.ref = forwardedRef;\n }\n\n return createElement(elementToBeCreated, propsForElement);\n}\n\nfunction createStyledComponent<\n Target extends WebTarget,\n OuterProps extends object,\n Statics extends object = BaseObject,\n>(\n target: Target,\n options: StyledOptions<'web', OuterProps>,\n rules: RuleSet\n): ReturnType> {\n const isTargetStyledComp = isStyledComponent(target);\n const styledComponentTarget = target as IStyledComponent<'web', OuterProps>;\n const isCompositeComponent = !isTag(target);\n\n const {\n attrs = EMPTY_ARRAY,\n componentId = generateId(options.displayName, options.parentComponentId),\n displayName = generateDisplayName(target),\n } = options;\n\n const styledComponentId =\n options.displayName && options.componentId\n ? `${escape(options.displayName)}-${options.componentId}`\n : options.componentId || componentId;\n\n // fold the underlying StyledComponent attrs up (implicit extend)\n const finalAttrs =\n isTargetStyledComp && styledComponentTarget.attrs\n ? styledComponentTarget.attrs.concat(attrs as unknown as Attrs[]).filter(Boolean)\n : (attrs as Attrs[]);\n\n let { shouldForwardProp } = options;\n\n if (isTargetStyledComp && styledComponentTarget.shouldForwardProp) {\n const shouldForwardPropFn = styledComponentTarget.shouldForwardProp;\n\n if (options.shouldForwardProp) {\n const passedShouldForwardPropFn = options.shouldForwardProp;\n\n // compose nested shouldForwardProp calls\n shouldForwardProp = (prop, elementToBeCreated) =>\n shouldForwardPropFn(prop, elementToBeCreated) &&\n passedShouldForwardPropFn(prop, elementToBeCreated);\n } else {\n shouldForwardProp = shouldForwardPropFn;\n }\n }\n\n const componentStyle = new ComponentStyle(\n rules,\n styledComponentId,\n isTargetStyledComp ? (styledComponentTarget.componentStyle as ComponentStyle) : undefined\n );\n\n function forwardRefRender(props: ExecutionProps & OuterProps, ref: Ref) {\n return useStyledComponentImpl(WrappedStyledComponent, props, ref);\n }\n\n forwardRefRender.displayName = displayName;\n\n /**\n * forwardRef creates a new interim component, which we'll take advantage of\n * instead of extending ParentComponent to create _another_ interim class\n */\n let WrappedStyledComponent = React.forwardRef(forwardRefRender) as unknown as IStyledComponent<\n 'web',\n any\n > &\n Statics;\n WrappedStyledComponent.attrs = finalAttrs;\n WrappedStyledComponent.componentStyle = componentStyle;\n WrappedStyledComponent.displayName = displayName;\n WrappedStyledComponent.shouldForwardProp = shouldForwardProp;\n\n // this static is used to preserve the cascade of static classes for component selector\n // purposes; this is especially important with usage of the css prop\n WrappedStyledComponent.foldedComponentIds = isTargetStyledComp\n ? joinStrings(styledComponentTarget.foldedComponentIds, styledComponentTarget.styledComponentId)\n : '';\n\n WrappedStyledComponent.styledComponentId = styledComponentId;\n\n // fold the underlying StyledComponent target up since we folded the styles\n WrappedStyledComponent.target = isTargetStyledComp ? styledComponentTarget.target : target;\n\n Object.defineProperty(WrappedStyledComponent, 'defaultProps', {\n get() {\n return this._foldedDefaultProps;\n },\n\n set(obj) {\n this._foldedDefaultProps = isTargetStyledComp\n ? merge({}, styledComponentTarget.defaultProps, obj)\n : obj;\n },\n });\n\n if (process.env.NODE_ENV !== 'production') {\n checkDynamicCreation(displayName, styledComponentId);\n\n WrappedStyledComponent.warnTooManyClasses = createWarnTooManyClasses(\n displayName,\n styledComponentId\n );\n }\n\n setToString(WrappedStyledComponent, () => `.${WrappedStyledComponent.styledComponentId}`);\n\n if (isCompositeComponent) {\n const compositeComponentTarget = target as AnyComponent;\n\n hoist(\n WrappedStyledComponent,\n compositeComponentTarget,\n {\n // all SC-specific things should not be hoisted\n attrs: true,\n componentStyle: true,\n displayName: true,\n foldedComponentIds: true,\n shouldForwardProp: true,\n styledComponentId: true,\n target: true,\n } as { [key in keyof OmitNever>]: true }\n );\n }\n\n return WrappedStyledComponent;\n}\n\nexport default createStyledComponent;\n","import { StyledTarget } from '../types';\nimport getComponentName from './getComponentName';\nimport isTag from './isTag';\n\nexport default function generateDisplayName(target: StyledTarget) {\n return isTag(target) ? `styled.${target}` : `Styled(${getComponentName(target)})`;\n}\n","import { Interpolation } from '../types';\n\nexport default function interleave(\n strings: readonly string[],\n interpolations: Interpolation[]\n): Interpolation[] {\n const result: Interpolation[] = [strings[0]];\n\n for (let i = 0, len = interpolations.length; i < len; i += 1) {\n result.push(interpolations[i], strings[i + 1]);\n }\n\n return result;\n}\n","import {\n BaseObject,\n Interpolation,\n NoInfer,\n RuleSet,\n StyledObject,\n StyleFunction,\n Styles,\n} from '../types';\nimport { EMPTY_ARRAY } from '../utils/empties';\nimport flatten from '../utils/flatten';\nimport interleave from '../utils/interleave';\nimport isFunction from '../utils/isFunction';\nimport isPlainObject from '../utils/isPlainObject';\n\n/**\n * Used when flattening object styles to determine if we should\n * expand an array of styles.\n */\nconst addTag = >(arg: T): T & { isCss: true } =>\n Object.assign(arg, { isCss: true } as const);\n\nfunction css(styles: Styles, ...interpolations: Interpolation[]): RuleSet;\nfunction css(\n styles: Styles>,\n ...interpolations: Interpolation>[]\n): RuleSet>;\nfunction css(\n styles: Styles>,\n ...interpolations: Interpolation>[]\n): RuleSet> {\n if (isFunction(styles) || isPlainObject(styles)) {\n const styleFunctionOrObject = styles as StyleFunction | StyledObject;\n\n return addTag(\n flatten(\n interleave(EMPTY_ARRAY, [\n styleFunctionOrObject,\n ...interpolations,\n ]) as Interpolation\n )\n );\n }\n\n const styleStringArray = styles as TemplateStringsArray;\n\n if (\n interpolations.length === 0 &&\n styleStringArray.length === 1 &&\n typeof styleStringArray[0] === 'string'\n ) {\n return flatten(styleStringArray);\n }\n\n return addTag(\n flatten(interleave(styleStringArray, interpolations) as Interpolation)\n );\n}\n\nexport default css;\n","import {\n Attrs,\n BaseObject,\n ExecutionProps,\n Interpolation,\n IStyledComponent,\n IStyledComponentFactory,\n KnownTarget,\n NoInfer,\n Runtime,\n StyledOptions,\n StyledTarget,\n Styles,\n Substitute,\n} from '../types';\nimport { EMPTY_OBJECT } from '../utils/empties';\nimport styledError from '../utils/error';\nimport css from './css';\n\ntype AttrsResult> = T extends (...args: any) => infer P\n ? P extends object\n ? P\n : never\n : T extends object\n ? T\n : never;\n\n/**\n * Based on Attrs being a simple object or function that returns\n * a prop object, inspect the attrs result and attempt to extract\n * any \"as\" prop usage to modify the runtime target.\n */\ntype AttrsTarget<\n R extends Runtime,\n T extends Attrs,\n FallbackTarget extends StyledTarget,\n Result extends ExecutionProps = AttrsResult,\n> = Result extends { as: infer RuntimeTarget }\n ? RuntimeTarget extends KnownTarget\n ? RuntimeTarget\n : FallbackTarget\n : FallbackTarget;\n\nexport interface Styled<\n R extends Runtime,\n Target extends StyledTarget,\n OuterProps extends object,\n OuterStatics extends object = BaseObject,\n> {\n (\n initialStyles: Styles>>,\n ...interpolations: Interpolation>>[]\n ): IStyledComponent> &\n OuterStatics &\n Statics &\n (R extends 'web'\n ? Target extends string\n ? {}\n : Omit>\n : {});\n\n attrs: <\n Props extends object = BaseObject,\n PrivateMergedProps extends object = Substitute,\n PrivateAttrsArg extends Attrs = Attrs,\n PrivateResolvedTarget extends StyledTarget = AttrsTarget,\n >(\n attrs: PrivateAttrsArg\n ) => Styled<\n R,\n PrivateResolvedTarget,\n PrivateResolvedTarget extends KnownTarget\n ? Substitute<\n Substitute>,\n Props\n >\n : PrivateMergedProps,\n OuterStatics\n >;\n\n withConfig: (config: StyledOptions) => Styled;\n}\n\nexport default function constructWithOptions<\n R extends Runtime,\n Target extends StyledTarget,\n OuterProps extends object = Target extends KnownTarget\n ? React.ComponentPropsWithRef\n : BaseObject,\n OuterStatics extends object = BaseObject,\n>(\n componentConstructor: IStyledComponentFactory, object, any>,\n tag: StyledTarget,\n options: StyledOptions = EMPTY_OBJECT\n): Styled {\n /**\n * We trust that the tag is a valid component as long as it isn't\n * falsish. Typically the tag here is a string or function (i.e.\n * class or pure function component), however a component may also be\n * an object if it uses another utility, e.g. React.memo. React will\n * output an appropriate warning however if the `tag` isn't valid.\n */\n if (!tag) {\n throw styledError(1, tag);\n }\n\n /* This is callable directly as a template function */\n const templateFunction = (\n initialStyles: Styles>,\n ...interpolations: Interpolation>[]\n ) =>\n componentConstructor, Statics>(\n tag,\n options as StyledOptions>,\n css>(initialStyles, ...interpolations)\n );\n\n /**\n * Attrs allows for accomplishing two goals:\n *\n * 1. Backfilling props at runtime more expressively than defaultProps\n * 2. Amending the prop interface of a wrapped styled component\n */\n templateFunction.attrs = <\n Props extends object = BaseObject,\n PrivateMergedProps extends object = Substitute,\n PrivateAttrsArg extends Attrs = Attrs,\n PrivateResolvedTarget extends StyledTarget = AttrsTarget,\n >(\n attrs: PrivateAttrsArg\n ) =>\n constructWithOptions<\n R,\n PrivateResolvedTarget,\n PrivateResolvedTarget extends KnownTarget\n ? Substitute<\n Substitute>,\n Props\n >\n : PrivateMergedProps,\n OuterStatics\n >(componentConstructor, tag, {\n ...options,\n attrs: Array.prototype.concat(options.attrs, attrs).filter(Boolean),\n });\n\n /**\n * If config methods are called, wrap up a new template function\n * and merge options.\n */\n templateFunction.withConfig = (config: StyledOptions) =>\n constructWithOptions(componentConstructor, tag, {\n ...options,\n ...config,\n });\n\n return templateFunction;\n}\n","import * as React from 'react';\nimport createStyledComponent from '../models/StyledComponent';\nimport { BaseObject, KnownTarget, WebTarget } from '../types';\nimport domElements, { SupportedHTMLElements } from '../utils/domElements';\nimport constructWithOptions, { Styled as StyledInstance } from './constructWithOptions';\n\nconst baseStyled = (\n tag: Target\n) =>\n constructWithOptions<\n 'web',\n Target,\n Target extends KnownTarget ? React.ComponentPropsWithRef & InjectedProps : InjectedProps\n >(createStyledComponent, tag);\n\nconst styled = baseStyled as typeof baseStyled & {\n [E in SupportedHTMLElements]: StyledInstance<'web', E, React.JSX.IntrinsicElements[E]>;\n};\n\n// Shorthands for all valid HTML Elements\ndomElements.forEach(domElement => {\n // @ts-expect-error some react typing bs\n styled[domElement] = baseStyled(domElement);\n});\n\nexport default styled;\nexport { StyledInstance };\n\n/**\n * This is the type of the `styled` HOC.\n */\nexport type Styled = typeof styled;\n\n/**\n * Use this higher-order type for scenarios where you are wrapping `styled`\n * and providing extra props as a third-party library.\n */\nexport type LibraryStyled = (\n tag: Target\n) => typeof baseStyled;\n","import StyleSheet from '../sheet';\nimport { ExecutionContext, RuleSet, Stringifier } from '../types';\nimport flatten from '../utils/flatten';\nimport isStaticRules from '../utils/isStaticRules';\nimport { joinStringArray } from '../utils/joinStrings';\n\nexport default class GlobalStyle {\n componentId: string;\n isStatic: boolean;\n rules: RuleSet;\n\n constructor(rules: RuleSet, componentId: string) {\n this.rules = rules;\n this.componentId = componentId;\n this.isStatic = isStaticRules(rules);\n\n // pre-register the first instance to ensure global styles\n // load before component ones\n StyleSheet.registerId(this.componentId + 1);\n }\n\n createStyles(\n instance: number,\n executionContext: ExecutionContext & Props,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ): void {\n const flatCSS = joinStringArray(\n flatten(this.rules as RuleSet, executionContext, styleSheet, stylis) as string[]\n );\n const css = stylis(flatCSS, '');\n const id = this.componentId + instance;\n\n // NOTE: We use the id as a name as well, since these rules never change\n styleSheet.insertRules(id, id, css);\n }\n\n removeStyles(instance: number, styleSheet: StyleSheet): void {\n styleSheet.clearRules(this.componentId + instance);\n }\n\n renderStyles(\n instance: number,\n executionContext: ExecutionContext & Props,\n styleSheet: StyleSheet,\n stylis: Stringifier\n ): void {\n if (instance > 2) StyleSheet.registerId(this.componentId + instance);\n\n // NOTE: Remove old styles, then inject the new ones\n this.removeStyles(instance, styleSheet);\n this.createStyles(instance, executionContext, styleSheet, stylis);\n }\n}\n","import Keyframes from '../models/Keyframes';\nimport { Interpolation, Styles } from '../types';\nimport generateComponentId from '../utils/generateComponentId';\nimport { joinStringArray } from '../utils/joinStrings';\nimport css from './css';\n\nexport default function keyframes(\n strings: Styles,\n ...interpolations: Array>\n): Keyframes {\n /* Warning if you've used keyframes on React Native */\n if (\n process.env.NODE_ENV !== 'production' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative'\n ) {\n console.warn(\n '`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.'\n );\n }\n\n const rules = joinStringArray(css(strings, ...interpolations) as string[]);\n const name = generateComponentId(rules);\n return new Keyframes(name, rules);\n}\n","import React from 'react';\nimport type * as streamInternal from 'stream';\nimport { Readable } from 'stream';\nimport { IS_BROWSER, SC_ATTR, SC_ATTR_VERSION, SC_VERSION } from '../constants';\nimport StyleSheet from '../sheet';\nimport styledError from '../utils/error';\nimport { joinStringArray } from '../utils/joinStrings';\nimport getNonce from '../utils/nonce';\nimport { StyleSheetManager } from './StyleSheetManager';\n\ndeclare const __SERVER__: boolean;\n\nconst CLOSING_TAG_R = /^\\s*<\\/[a-z]/i;\n\nexport default class ServerStyleSheet {\n instance: StyleSheet;\n sealed: boolean;\n\n constructor() {\n this.instance = new StyleSheet({ isServer: true });\n this.sealed = false;\n }\n\n _emitSheetCSS = (): string => {\n const css = this.instance.toString();\n if (!css) return '';\n const nonce = getNonce();\n const attrs = [\n nonce && `nonce=\"${nonce}\"`,\n `${SC_ATTR}=\"true\"`,\n `${SC_ATTR_VERSION}=\"${SC_VERSION}\"`,\n ];\n const htmlAttr = joinStringArray(attrs.filter(Boolean) as string[], ' ');\n\n return ``;\n };\n\n collectStyles(children: any): React.JSX.Element {\n if (this.sealed) {\n throw styledError(2);\n }\n\n return {children};\n }\n\n getStyleTags = (): string => {\n if (this.sealed) {\n throw styledError(2);\n }\n\n return this._emitSheetCSS();\n };\n\n getStyleElement = () => {\n if (this.sealed) {\n throw styledError(2);\n }\n\n const css = this.instance.toString();\n if (!css) return [];\n\n const props = {\n [SC_ATTR]: '',\n [SC_ATTR_VERSION]: SC_VERSION,\n dangerouslySetInnerHTML: {\n __html: css,\n },\n };\n\n const nonce = getNonce();\n if (nonce) {\n (props as any).nonce = nonce;\n }\n\n // v4 returned an array for this fn, so we'll do the same for v5 for backward compat\n return [