{"version":3,"file":"static/js/main.038f9635.js","mappings":"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","sources":["../node_modules/@babel/runtime/regenerator/index.js","../node_modules/babel-runtime/core-js/object/assign.js","../node_modules/babel-runtime/core-js/object/create.js","../node_modules/babel-runtime/core-js/object/define-property.js","../node_modules/babel-runtime/core-js/object/get-prototype-of.js","../node_modules/babel-runtime/core-js/object/set-prototype-of.js","../node_modules/babel-runtime/core-js/symbol.js","../node_modules/babel-runtime/core-js/symbol/iterator.js","../node_modules/babel-runtime/helpers/classCallCheck.js","../node_modules/babel-runtime/helpers/createClass.js","../node_modules/babel-runtime/helpers/extends.js","../node_modules/babel-runtime/helpers/inherits.js","../node_modules/babel-runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-runtime/helpers/typeof.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/object-assign/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-lottie/dist/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../webpack/bootstrap","../webpack/runtime/amd options","../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","components/Navbar.jsx","components/SocialLinks.jsx","../node_modules/ityped/src/index.js","components/Introduction.jsx","components/Resume.jsx","components/Skills.jsx","data/frontProjectsData.js","data/fullProjectsData.js","components/FrontProjectsCards.jsx","components/FStackProjectsCards.jsx","components/Projects.jsx","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@emailjs/browser/es/store/store.js","../node_modules/@emailjs/browser/es/utils/validateParams.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@emailjs/browser/es/models/EmailJSResponseStatus.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@emailjs/browser/es/api/sendPost.js","../node_modules/@emailjs/browser/es/index.js","../node_modules/@emailjs/browser/es/methods/sendForm/sendForm.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../node_modules/react-hook-form/src/utils/isDateObject.ts","../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../node_modules/react-hook-form/src/utils/isObject.ts","../node_modules/react-hook-form/src/logic/getEventValue.ts","../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../node_modules/react-hook-form/src/logic/getNodeParentName.ts","../node_modules/react-hook-form/src/utils/isWeb.ts","../node_modules/react-hook-form/src/utils/cloneObject.ts","../node_modules/react-hook-form/src/utils/isPlainObject.ts","../node_modules/react-hook-form/src/utils/compact.ts","../node_modules/react-hook-form/src/utils/isUndefined.ts","../node_modules/react-hook-form/src/utils/get.ts","../node_modules/react-hook-form/src/utils/isBoolean.ts","../node_modules/react-hook-form/src/constants.ts","../node_modules/react-hook-form/src/logic/getProxyFormState.ts","../node_modules/react-hook-form/src/useFormContext.tsx","../node_modules/react-hook-form/src/utils/isEmptyObject.ts","../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","../node_modules/react-hook-form/src/useSubscribe.ts","../node_modules/react-hook-form/src/utils/isString.ts","../node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../node_modules/react-hook-form/src/utils/isKey.ts","../node_modules/react-hook-form/src/utils/stringToPath.ts","../node_modules/react-hook-form/src/utils/set.ts","../node_modules/react-hook-form/src/logic/appendErrors.ts","../node_modules/react-hook-form/src/logic/getValidationModes.ts","../node_modules/react-hook-form/src/logic/isWatched.ts","../node_modules/react-hook-form/src/logic/iterateFieldsByAction.ts","../node_modules/react-hook-form/src/logic/updateFieldArrayRootError.ts","../node_modules/react-hook-form/src/utils/isFileInput.ts","../node_modules/react-hook-form/src/utils/isFunction.ts","../node_modules/react-hook-form/src/utils/isHTMLElement.ts","../node_modules/react-hook-form/src/utils/isMessage.ts","../node_modules/react-hook-form/src/utils/isRadioInput.ts","../node_modules/react-hook-form/src/utils/isRegex.ts","../node_modules/react-hook-form/src/logic/getCheckboxValue.ts","../node_modules/react-hook-form/src/logic/getRadioValue.ts","../node_modules/react-hook-form/src/logic/getValidateError.ts","../node_modules/react-hook-form/src/logic/getValueAndMessage.ts","../node_modules/react-hook-form/src/logic/validateField.ts","../node_modules/react-hook-form/src/utils/unset.ts","../node_modules/react-hook-form/src/utils/createSubject.ts","../node_modules/react-hook-form/src/utils/isPrimitive.ts","../node_modules/react-hook-form/src/utils/deepEqual.ts","../node_modules/react-hook-form/src/utils/isMultipleSelect.ts","../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts","../node_modules/react-hook-form/src/utils/live.ts","../node_modules/react-hook-form/src/utils/objectHasFunction.ts","../node_modules/react-hook-form/src/logic/getDirtyFields.ts","../node_modules/react-hook-form/src/logic/getFieldValueAs.ts","../node_modules/react-hook-form/src/logic/getFieldValue.ts","../node_modules/react-hook-form/src/logic/getResolverOptions.ts","../node_modules/react-hook-form/src/logic/getRuleValue.ts","../node_modules/react-hook-form/src/logic/hasValidation.ts","../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts","../node_modules/react-hook-form/src/logic/skipValidation.ts","../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts","../node_modules/react-hook-form/src/logic/createFormControl.ts","components/Contact.jsx","../node_modules/react-hook-form/src/useForm.ts","components/Footer.jsx","App.js","reportWebVitals.js","index.js"],"sourcesContent":["module.exports = require(\"regenerator-runtime\");\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function () { /* empty */ };\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = true;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = require('./_hide');\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var idPrefix$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 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.tt) {\n layers[i - 1].td = layerData.tt;\n }\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n xhr.open('GET', path, true);\n } catch (error) {\n xhr.open('GET', fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].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 _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 };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n this.setParams(params);\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function () {\n this.renderer.updateContainerSize();\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_pause');\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('_play');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.renderer = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.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 PropertyFactory = function () {\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n function getProp(elem, data, type, mult, container) {\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.9.6';\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 if (!this.a.k) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n var zeroWidthJoiner = [65039, 8205];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(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);\n\n var index = _char2.charCodeAt(0);\n\n if (!fontData.cache[index + 1]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index + 1] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index + 1] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\n if (!secondCharCode) {\n return firstCharCode === zeroWidthJoiner[1];\n }\n\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isCombinedCharacter = isCombinedCharacter;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _prevValue;\n\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (stringValue !== _prevValue) {\n elem.textProperty.currentData.t = _prevValue;\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._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.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.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _opMdf: false,\n mat: new Matrix()\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n return ob;\n }();\n\n var registeredEffects = {};\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[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects[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 function registerEffect(id, effect, countsAsEffect) {\n registeredEffects[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n var filId;\n var fil;\n var gg;\n\n if (this.data.td) {\n if (this.data.td == 3 || this.data.td == 1) {\n // eslint-disable-line eqeqeq\n var masker = createNS('mask');\n masker.setAttribute('id', this.layerId);\n masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\n\n masker.appendChild(this.layerElement);\n layerElementParent = masker;\n this.globalData.defs.appendChild(masker); // This is only for IE and Edge when mask if of type alpha\n\n if (!featureSupport.maskType && this.data.td == 1) {\n // eslint-disable-line eqeqeq\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (this.data.td == 2) {\n // eslint-disable-line eqeqeq\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', this.layerId);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n // This solution doesn't work on Android when meta tag with viewport attribute is set\n\n /* var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n fil.appendChild(feColorMatrix); */\n /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n maskGrouper.appendChild(this.layerElement);\n layerElementParent = maskGrouper;\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._matMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var props;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n props = itemData.transformers[k].mProps.v.props;\n mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n\n while (i < len) {\n charCode = text.charCodeAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n shouldCombine = false;\n } else {\n charactersArray.push(text.substr(i, 2));\n }\n\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\n shouldCombine = true;\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n shouldCombine = true;\n } else {\n charactersArray.push(text.charAt(i));\n }\n\n i += 1;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.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 if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.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]) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n if (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\n this.buildItem(pos - 1);\n this.addPendingElement(element);\n } else {\n element.setMatte(elements[pos - 1].layerId);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n element.setMatte(this.elements[i - 1].layerId);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function CVContextData() {\n this.saved = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n this.cO = 1;\n var i;\n var len = 15;\n this.savedOp = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = len;\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var currentSavedOp = this.savedOp;\n this.savedOp = createTypedArray('float32', newLength);\n this.savedOp.set(currentSavedOp);\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.cO = 1;\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n var props;\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n props = sequence.transforms[i].transform.mProps.v.props;\n sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n function CVEffects() {}\n\n CVEffects.prototype.renderFrame = function () {};\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n this.canvasContext = this.globalData.canvasContext;\n this.renderableEffectsManager = new CVEffects(this);\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n ctx.lineWidth = currentStyle.wi;\n ctx.lineCap = currentStyle.lc;\n ctx.lineJoin = currentStyle.lj;\n ctx.miterLimit = currentStyle.ml || 0;\n } else {\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n ctx.stroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n ctx.fill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n this.globalData.renderer.save();\n this.globalData.renderer.ctxTransform(renderedLetter.p);\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n lastFill = renderedLetter.fc;\n ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.fillStyle = this.data.sc;\n ctx.fillRect(0, 0, this.data.sw, this.data.sh); //\n };\n\n function CanvasRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n return;\n }\n\n this.transformMat.cloneFromProps(props);\n var cProps = this.contextData.cTr.props;\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\n\n this.contextData.cTr.cloneFromProps(this.transformMat.props);\n var trProps = this.contextData.cTr.props;\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n /* if(op === 1){\r\n return;\r\n } */\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n return;\n }\n\n this.contextData.cO *= op < 0 ? 0 : op;\n\n if (this.globalData.currentGlobalAlpha !== this.contextData.cO) {\n this.canvasContext.globalAlpha = this.contextData.cO;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n }\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.save();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.save();\n }\n\n var props = this.contextData.cTr.props;\n\n if (this.contextData._length <= this.contextData.cArrPos) {\n this.contextData.duplicate();\n }\n\n var i;\n var arr = this.contextData.saved[this.contextData.cArrPos];\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = props[i];\n }\n\n this.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\n this.contextData.cArrPos += 1;\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.restore();\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.cArrPos -= 1;\n var popped = this.contextData.saved[this.contextData.cArrPos];\n var i;\n var arr = this.contextData.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = popped[i];\n }\n\n this.canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\n popped = this.contextData.savedOp[this.contextData.cArrPos];\n this.contextData.cO = popped;\n\n if (this.globalData.currentGlobalAlpha !== popped) {\n this.canvasContext.globalAlpha = popped;\n this.globalData.currentGlobalAlpha = popped;\n }\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function () {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n this.animationItem.container.setAttribute('width', elementWidth * this.renderConfig.dpr);\n this.animationItem.container.setAttribute('height', elementHeight * this.renderConfig.dpr);\n } else {\n elementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;\n elementHeight = this.canvasContext.canvas.height * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } 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 var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n this.elements[i].destroy();\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$1(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n initialize$2(BMMath);\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof(a);\n\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, 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];\n return ob;\n }();\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n 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 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', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', 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.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, 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 registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect(20, SVGTintFilter, true);\n registerEffect(21, SVGFillFilter, true);\n registerEffect(22, SVGStrokeEffect, false);\n registerEffect(23, SVGTritoneFilter, true);\n registerEffect(24, SVGProLevelsFilter, true);\n registerEffect(25, SVGDropShadowEffect, true);\n registerEffect(28, SVGMatte3Effect, false);\n registerEffect(29, SVGGaussianBlurEffect, true);\n\n return lottie;\n\n}));\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/** @license React v17.0.2\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\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(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 D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(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){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(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(oa,\npa);D[b]=new B(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(oa,pa);D[b]=new B(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(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(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 ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function 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 m({},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 $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(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\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(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 bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!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,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({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 vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(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}}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(y(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;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&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=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){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 Oe(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)}\nvar Pe=fa&&\"documentMode\"in document&&11>=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&&Oe(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&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;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}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)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=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"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[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,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=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/** @license React v0.20.2\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f,g,h,k;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}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","// 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 = {};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"490b46c9\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"my-personal-portfolio:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkmy_personal_portfolio\"] = self[\"webpackChunkmy_personal_portfolio\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","/* eslint-disable react/jsx-no-target-blank */\n/* eslint-disable jsx-a11y/anchor-is-valid */\n/* eslint-disable jsx-a11y/anchor-has-content */\nimport React from 'react';\n\nexport default function Navbar() {\n const menuClick = () => {\n let closeButton = document.querySelector('.uk-offcanvas-close');\n closeButton.click();\n }\n return(\n
\n \n
\n );\n}\n","/* eslint-disable jsx-a11y/anchor-has-content */\nimport React from 'react';\n\nexport default function SocialLinks() {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n}\n","/**\n * @name setProps\n * @description Set the ityped properties configuration\n * @param {Object} config The configuration properties\n * @return {Promise}\n */\nconst setProps = ({\n strings = ['Put your strings here...', 'and Enjoy!'],\n typeSpeed = 100,\n backSpeed = 50,\n backDelay = 500,\n startDelay = 500,\n cursorChar = '|',\n placeholder = false,\n showCursor = true,\n disableBackTyping = false,\n onFinished = function () { },\n loop = true\n}) => ({\n strings,\n typeSpeed,\n backSpeed,\n cursorChar,\n backDelay,\n placeholder,\n startDelay,\n showCursor,\n loop,\n disableBackTyping,\n onFinished\n})\n\nexport const init = (element, properties) => {\n let i = 0, l, STRINGS_TO_ITERATE;\n\n const typewrite = (strings, props) => {\n if (i === l)\n if (props.loop) i = 0;\n setTimeout(() => { typeString(strings[i], props); }, props.startDelay);\n }\n\n const typeString = (str, props) => {\n let index = 0,\n strLen = str.length;\n let intervalID = setInterval(() => {\n props.placeholder ? element.placeholder += str[index] : element.textContent += str[index];\n if (++index === strLen) return onStringTyped(intervalID, props);\n }, props.typeSpeed);\n }\n\n const onStringTyped = (id, props) => {\n clearInterval(id);\n if (props.disableBackTyping && i === l - 1) {\n return props.onFinished()\n }\n if (!props.loop && i === l - 1) {\n return props.onFinished();\n }\n setTimeout(() => eraseString(props), props.backDelay);\n }\n\n const eraseString = (props) => {\n let str = props.placeholder ? element.placeholder : element.textContent,\n strLen = str.length;\n let intervalID = setInterval(() => {\n props.placeholder\n ? element.placeholder = element.placeholder.substr(0, --strLen)\n : element.textContent = str.substr(0, --strLen);\n if (strLen === 0) return onStringErased(intervalID, props);\n }, props.backSpeed);\n }\n\n const onStringErased = (id, props) => {\n clearInterval(id);\n ++i;\n typewrite(STRINGS_TO_ITERATE, props);\n }\n\n const setCursor = (element, props) => {\n let cursorSpan = document.createElement('span');\n cursorSpan.classList.add('ityped-cursor');\n cursorSpan.textContent = '|';\n cursorSpan.textContent = props.cursorChar;\n element.insertAdjacentElement('afterend', cursorSpan);\n }\n\n\n const startTyping = (prop) => {\n let props = setProps(prop || {})\n let strings = props.strings\n STRINGS_TO_ITERATE = strings\n l = strings.length\n if (typeof element === \"string\") element = document.querySelector(element)\n if (props.showCursor) setCursor(element, props)\n typewrite(strings, props)\n }\n\n return startTyping(properties)\n}","/* eslint-disable jsx-a11y/anchor-has-content */\nimport React, { useEffect, useRef } from 'react';\nimport IntroImg from \"../assets/intro.png\";\nimport { init } from 'ityped';\nimport Lottie from 'react-lottie';\nimport animationData from '../lotties/coding.json';\n\nexport default function Introduction() {\n const textRef = useRef();\n useEffect(() => {\n init(textRef.current, { showCursor: false, strings: ['Developer'], typeSpeed: 100,});\n }, []);\n const defaultOptions = {\n loop: true,\n autoplay: true,\n animationData: animationData,\n rendererSettings: {\n preserveAspectRatio: \"xMidYMid slice\"\n }\n };\n return (\n
\n
\n
\n
\n
\n \n
\n
\n
\n
Hi There, I am
\n
Melih Dizdar
\n
\n Front-End \n
\n
\n \n
\n
\n
\n
\n
\n );\n}\n","/* eslint-disable jsx-a11y/anchor-has-content */\nimport React from 'react';\n\nexport default function Resume() {\n return(\n
\n
\n
\n
\n
Resume
\n
\n
\n
\n
\n
\n
    li; cls: uk-animation-fade; delay:300;\">\n
  • \n April 2022 - Current\n
    \n

    Clockwork Agency - Front-End Developer

    \n
    \n
    \n Implement user interface components and layouts, cross-browser compatible styling, add \n interactions client-side. Used several technologies according to projects. \n
    \n
    \n I have completed projects; Poligon İnşaat, IQ Aluminyum, Super Film, Guvenok Logistics, \n Matadoor, Calista Luxury Resort, Regnum Hotels, Doxa, Sirene Hotels, Türkiye Golf Federasyonu, \n Dinamis, NG Hotels, Global Ports Holding, BHM Group, Regnum Carya Golf, Akra QR, Akra Hotels, \n Nef, Restra, Stork Camper, Doktar, Pablito Bistro, 251 Soul, Akra Fit, Buket Yıkama, Schloss \n Lüdersburg and Ethno Hotels.\n
    \n
    \n I have completed react projects; Fiat Online Reservation, Alfa Romeo Reservation and Jeep \n Online Reservation.\n
    \n
    \n Skills: React.js - Next.js - JavaScript - CSS - LESS - HTML5 - UIKit - SASS - Bootstrap - jQuery\n
    \n
    \n
    \n
  • \n
  • \n September 2021 - Current\n
    \n

    Anadolu University

    \n

    Licentiate degree, Management Information Systems

    \n
    \n
  • \n
  • \n September 2018 - June 2020\n
    \n

    Sakarya University of Applied Sciences

    \n

    Associate's degree, Computer Programming

    \n
    Skills: HTML, CSS, Bootstrap, ASP.NET, MSSQL, PHP and C# Windows Form App.
    \n
    \n
  • \n
  • \n September 2013 - June 2017\n
    \n

    İMMİB Erkan Avcı Vocational and Technical Anatolian High School

    \n

    High School Degree, Information Iechnologies - Web Design

    \n
    \n
  • \n
\n
\n
\n
\n );\n}\n","/* eslint-disable jsx-a11y/anchor-has-content */\nimport React from 'react';\n\nexport default function Skills() {\n return(\n
\n
\n
\n
\n
\n Skills\n
\n
\n
\n
\n {/*Mobile*/}\n
\n
\n
\n
div; cls: uk-animation-fade; delay:300;\">\n
\n
\n
Markup Language
\n
\n
\n
\n
\n
\n
\n
\n
Software Language
\n
\n
\n
\n
\n
\n
\n
\n
UI Framework
\n
\n
\n
\n
\n
\n
\n
\n
\n
JS Framework
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Version Control
\n
\n
\n
\n
\n
\n
\n
\n
\n
Code Editor
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n {/*Desktop*/}\n
\n
\n
\n
div; cls: uk-animation-fade; delay:300;\">\n
\n
\n
Markup Language
\n
\n
\n
\n
\n
\n
\n
\n
UI Framework
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Software Language
\n
\n
\n
\n
\n
\n
JS Framework
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Version Control
\n
\n
\n
\n
\n
\n
\n
\n
\n
Code Editor
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n}\n","const frontProjectsData = [\n {\n header: 'Ethno Hotels',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://www.ethnohotels.com/',\n },\n {\n header: 'Schloss Lüdersburg',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://www.schloss-luedersburg.de/',\n },\n {\n header: 'Buket Yıkama',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://www.buket.com.tr/',\n },\n {\n header: 'Akra Fit',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://www.akrafit.com/',\n },\n {\n header: '251 Soul',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://www.251soul.com/',\n },\n {\n header: 'Pablito Bistro',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://www.pablitobistro.com/en/',\n },\n {\n header: 'Doktar',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://www.doktar.com/en/',\n },\n {\n header: 'Stork Camper',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://storkcamper.com/',\n },\n {\n header: 'Nef',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://www.nef.com.tr/',\n },\n {\n header: 'Akra Hotels',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://akrahotels.com/',\n },\n {\n header: 'Akra QR',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://qr.akrahotels.com/',\n },\n {\n header: 'BHM Group',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://www.bhmotelcilik.com/',\n },\n {\n header: 'Global Ports Holding',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://www.globalportsholding.com/',\n },\n {\n header: 'NG Hotels',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://www.nghotels.com.tr/tr/',\n },\n {\n header: 'Sirene Hotels',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://www.sirene.com.tr/',\n },\n {\n header: 'Doxa',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://www.doxa.com.tr/',\n },\n {\n header: 'Regnum Hotels',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://www.regnumhotels.com/tr/',\n },\n {\n header: 'Dinamis',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, data display on the frontend with endpoints and google map integration were made.`,\n link:'https://www.dinamis.com.tr/',\n },\n {\n header: 'Calista Luxury Resort',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, connecting coordinates with endpoint and displaying multiple maps.`,\n link:'https://calista.com.tr/',\n },\n {\n header: 'Matadoor',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript, connecting coordinates with endpoint and displaying multiple maps.`,\n link:'https://www.matador.com.tr/',\n },\n {\n header: 'Super Film',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement and calculation modules with javascript were made.`,\n link:'https://www.superfilm.com/',\n },\n {\n header: 'IQ Aluminyum',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement and calculation modules with javascript were made.`,\n link:'https://www.iqaluminyum.com/',\n },\n {\n header: 'Poligon Construction',\n lang: 'Javascript,Jquery,UIkit',\n text: `Form validations with pixel perfect design jquery and performance improvement with javascript.`,\n link:'http://www.poligoninsaat.com.tr/',\n },\n {\n header: 'Construction Portfolio',\n lang: 'React,SASS',\n text: `The website where the person's work experiences, projects and educational information are displayed.`,\n link:'https://github.com/melihdizdar/construction-portfolio',\n },\n {\n header: 'Restaurant Portfolio',\n lang: 'React,SASS',\n text: `The website where the information of restaurants in the type of shops is published.`,\n link:'https://github.com/melihdizdar/restaurant-portfolio',\n },\n {\n header: 'Your Tastehouse',\n lang: 'React,CSS',\n text: `The website where the company showcases its products.`,\n link:'https://github.com/melihdizdar/your-tastehouse',\n },\n {\n header: 'CV Portfoilo',\n lang: 'React,CSS',\n text: `The website where the person's work experiences, projects and educational information are displayed.`,\n link:'https://github.com/melihdizdar/cv-portfoilo-project',\n },\n {\n header: '2E Shoes Textile',\n lang: 'Html,CSS,Dreamviewer',\n text: `The project in which shoe textile products are previewed.`,\n link:'https://github.com/melihdizdar/2e-shoes-textile',\n },\n]\n\nexport default frontProjectsData;","const fullProjectsData = [\n {\n id: 1,\n header: 'E-Commerce Website',\n lang: 'React,SASS,Node.js',\n text: `On this site, products are exhibited and sold with real payment method.`,\n link:'https://github.com/melihdizdar/ecommerce-website',\n },\n {\n id: 2,\n header: 'Amazon Clone',\n lang: 'React,CSS,Node.js',\n text: `This website is Amazon's clone work.`,\n link:'https://github.com/melihdizdar/amazon-clone',\n },\n {\n id: 3,\n header: 'Order Food',\n lang: 'ASP.NET,C#',\n text: `The project that displays the order note of the ordered dishes.`,\n link:'https://github.com/melihdizdar/order-food',\n },\n {\n id: 4,\n header: 'Reading Books Online',\n lang: 'ASP.NET,C#',\n text: `Project showing pdf of purchased book.`,\n link:'https://github.com/melihdizdar/reading-books-online',\n },\n]\n\nexport default fullProjectsData;","import React from 'react';\n\nexport default function FrontProjectsCards(props) {\n const {frontCard} = props;\n return (\n
  • \n
    \n
    \n
    \n

    {frontCard.header}

    \n {frontCard.lang}\n

    {frontCard.text}

    \n
    \n \n
    \n
    \n
  • \n );\n}\n","import React from 'react';\n\nexport default function FStackProjectsCards(props) {\n const {fstackCard} = props;\n return (\n
  • \n
    \n
    \n
    \n

    {fstackCard.header}

    \n {fstackCard.lang}\n

    {fstackCard.text}

    \n
    \n \n
    \n
    \n
  • \n );\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\n/* eslint-disable jsx-a11y/anchor-has-content */\nimport React from 'react';\nimport frontProjectsData from '../data/frontProjectsData';\nimport fullProjectsData from '../data/fullProjectsData';\nimport FrontProjectsCards from './FrontProjectsCards';\nimport FStackProjectsCards from './FStackProjectsCards';\n\nexport default function Projects() {\n return(\n
    \n
    \n
    \n
    \n
    Projects
    \n
    \n
    \n
    \n
    \n
    \n \n
      \n
    • \n
      \n
      \n
      \n
        \n {frontProjectsData.map((frontCard) => (\n \n ))}\n
      \n
      \n
      \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n
      • \n
      • \n
        \n
        \n
        \n
          \n {fullProjectsData.map((fstackCard) => (\n \n ))}\n
        \n
        \n
        \n
          \n
          \n
          \n \n \n
          \n
          \n
          \n
        • \n
        \n
        \n
        \n
        \n \n
        \n
        \n );\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export const store = {\n _origin: 'https://api.emailjs.com',\n};\n","export const validateParams = (userID, serviceID, templateID) => {\n if (!userID) {\n throw 'The user ID is required. Visit https://dashboard.emailjs.com/admin/integration';\n }\n if (!serviceID) {\n throw 'The service ID is required. Visit https://dashboard.emailjs.com/admin';\n }\n if (!templateID) {\n throw 'The template ID is required. Visit https://dashboard.emailjs.com/admin/templates';\n }\n return true;\n};\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export class EmailJSResponseStatus {\n constructor(httpResponse) {\n this.status = httpResponse.status;\n this.text = httpResponse.responseText;\n }\n}\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import { EmailJSResponseStatus } from '../models/EmailJSResponseStatus';\nimport { store } from '../store/store';\nexport const sendPost = (url, data, headers = {}) => {\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n xhr.addEventListener('load', ({ target }) => {\n const responseStatus = new EmailJSResponseStatus(target);\n if (responseStatus.status === 200 || responseStatus.text === 'OK') {\n resolve(responseStatus);\n }\n else {\n reject(responseStatus);\n }\n });\n xhr.addEventListener('error', ({ target }) => {\n reject(new EmailJSResponseStatus(target));\n });\n xhr.open('POST', store._origin + url, true);\n Object.keys(headers).forEach((key) => {\n xhr.setRequestHeader(key, headers[key]);\n });\n xhr.send(data);\n });\n};\n","import { init } from './methods/init/init';\nimport { send } from './methods/send/send';\nimport { sendForm } from './methods/sendForm/sendForm';\nexport { init, send, sendForm };\nexport default {\n init,\n send,\n sendForm,\n};\n","import { store } from '../../store/store';\nimport { validateParams } from '../../utils/validateParams';\nimport { sendPost } from '../../api/sendPost';\nconst findHTMLForm = (form) => {\n let currentForm;\n if (typeof form === 'string') {\n currentForm = document.querySelector(form);\n }\n else {\n currentForm = form;\n }\n if (!currentForm || currentForm.nodeName !== 'FORM') {\n throw 'The 3rd parameter is expected to be the HTML form element or the style selector of form';\n }\n return currentForm;\n};\n/**\n * Send a form the specific EmailJS service\n * @param {string} serviceID - the EmailJS service ID\n * @param {string} templateID - the EmailJS template ID\n * @param {string | HTMLFormElement} form - the form element or selector\n * @param {string} userID - the EmailJS user ID\n * @returns {Promise}\n */\nexport const sendForm = (serviceID, templateID, form, userID) => {\n const uID = userID || store._userID;\n const currentForm = findHTMLForm(form);\n validateParams(uID, serviceID, templateID);\n const formData = new FormData(currentForm);\n formData.append('lib_version', '3.4.0');\n formData.append('service_id', serviceID);\n formData.append('template_id', templateID);\n formData.append('user_id', uID);\n return sendPost('/api/v1.0/email/send-form', formData);\n};\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\n","export default (value: unknown): value is Date => value instanceof Date;\n","export default (value: unknown): value is null | undefined => value == null;\n","import isDateObject from './isDateObject';\nimport isNullOrUndefined from './isNullOrUndefined';\n\nexport const isObjectType = (value: unknown): value is object =>\n typeof value === 'object';\n\nexport default (value: unknown): value is T =>\n !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n","import isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isObject from '../utils/isObject';\n\ntype Event = { target: any };\n\nexport default (event: unknown) =>\n isObject(event) && (event as Event).target\n ? isCheckBoxInput((event as Event).target)\n ? (event as Event).target.checked\n : (event as Event).target.value\n : event;\n","import { InternalFieldName } from '../types';\n\nimport getNodeParentName from './getNodeParentName';\n\nexport default (names: Set, name: InternalFieldName) =>\n names.has(getNodeParentName(name));\n","export default (name: string) =>\n name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n","export default typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n","import isObject from './isObject';\nimport isPlainObject from './isPlainObject';\nimport isWeb from './isWeb';\n\nexport default function cloneObject(data: T): T {\n let copy: any;\n const isArray = Array.isArray(data);\n\n if (data instanceof Date) {\n copy = new Date(data);\n } else if (data instanceof Set) {\n copy = new Set(data);\n } else if (\n !(isWeb && (data instanceof Blob || data instanceof FileList)) &&\n (isArray || isObject(data))\n ) {\n copy = isArray ? [] : {};\n\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n } else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n } else {\n return data;\n }\n\n return copy;\n}\n","import isObject from './isObject';\n\nexport default (tempObject: object) => {\n const prototypeCopy =\n tempObject.constructor && tempObject.constructor.prototype;\n\n return (\n isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf')\n );\n};\n","export default (value: TValue[]) =>\n Array.isArray(value) ? value.filter(Boolean) : [];\n","export default (val: unknown): val is undefined => val === undefined;\n","import compact from './compact';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\n\nexport default (object: T, path?: string, defaultValue?: unknown): any => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n\n const result = compact(path.split(/[,[\\].]+?/)).reduce(\n (result, key) =>\n isNullOrUndefined(result) ? result : result[key as keyof {}],\n object,\n );\n\n return isUndefined(result) || result === object\n ? isUndefined(object[path as keyof T])\n ? defaultValue\n : object[path as keyof T]\n : result;\n};\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","export const EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n} as const;\n\nexport const VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n} as const;\n\nexport const INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n} as const;\n\nexport const FORM_DEFAULT_STATE = {\n isDirty: false,\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n errors: {},\n disabled: false,\n} as const;\n","import { VALIDATION_MODE } from '../constants';\nimport { Control, FieldValues, FormState, ReadFormState } from '../types';\n\nexport default (\n formState: FormState,\n control: Control,\n localProxyFormState?: ReadFormState,\n isRoot = true,\n) => {\n const result = {\n defaultValues: control._defaultValues,\n } as typeof formState;\n\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key as keyof FormState & keyof ReadFormState;\n\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n\n return result;\n};\n","import React from 'react';\n\nimport { FieldValues, FormProviderProps, UseFormReturn } from './types';\n\nconst HookFormContext = React.createContext(null);\n\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
        \n * \n * \n * \n *
        \n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const useFormContext = <\n TFieldValues extends FieldValues,\n TContext = any,\n TransformedValues extends FieldValues | undefined = undefined,\n>(): UseFormReturn =>\n React.useContext(HookFormContext) as UseFormReturn<\n TFieldValues,\n TContext,\n TransformedValues\n >;\n\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
        \n * \n * \n * \n *
        \n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const FormProvider = <\n TFieldValues extends FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props: FormProviderProps,\n) => {\n const { children, ...data } = props;\n return (\n \n {children}\n \n );\n};\n","import { EmptyObject } from '../types';\n\nimport isObject from './isObject';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n","import { VALIDATION_MODE } from '../constants';\nimport {\n Control,\n FieldValues,\n FormState,\n InternalFieldName,\n ReadFormState,\n} from '../types';\nimport isEmptyObject from '../utils/isEmptyObject';\n\nexport default (\n formStateData: Partial> & { name?: InternalFieldName },\n _proxyFormState: K,\n updateFormState: Control['_updateFormState'],\n isRoot?: boolean,\n) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n\n return (\n isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find(\n (key) =>\n _proxyFormState[key as keyof ReadFormState] ===\n (!isRoot || VALIDATION_MODE.all),\n )\n );\n};\n","export default (value: T) => (Array.isArray(value) ? value : [value]);\n","import React from 'react';\n\nimport { Subject } from './utils/createSubject';\n\ntype Props = {\n disabled?: boolean;\n subject: Subject;\n next: (value: T) => void;\n};\n\nexport function useSubscribe(props: Props) {\n const _props = React.useRef(props);\n _props.current = props;\n\n React.useEffect(() => {\n const subscription =\n !props.disabled &&\n _props.current.subject &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n","export default (value: unknown): value is string => typeof value === 'string';\n","import { DeepPartial, FieldValues, Names } from '../types';\nimport get from '../utils/get';\nimport isString from '../utils/isString';\n\nexport default (\n names: string | string[] | undefined,\n _names: Names,\n formValues?: FieldValues,\n isGlobal?: boolean,\n defaultValue?: DeepPartial | unknown,\n) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n\n if (Array.isArray(names)) {\n return names.map(\n (fieldName) => (\n isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)\n ),\n );\n }\n\n isGlobal && (_names.watchAll = true);\n\n return formValues;\n};\n","export default (value: string) => /^\\w*$/.test(value);\n","import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n","import { FieldValues } from '../types';\n\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport stringToPath from './stringToPath';\n\nexport default (object: FieldValues, path: string, value?: unknown) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n};\n","import {\n InternalFieldErrors,\n InternalFieldName,\n ValidateResult,\n} from '../types';\n\nexport default (\n name: InternalFieldName,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors,\n type: string,\n message: ValidateResult,\n) =>\n validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name]!.types ? errors[name]!.types : {}),\n [type]: message || true,\n },\n }\n : {};\n","import { VALIDATION_MODE } from '../constants';\nimport { Mode, ValidationModeFlags } from '../types';\n\nexport default (mode?: Mode): ValidationModeFlags => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n","import { InternalFieldName, Names } from '../types';\n\nexport default (\n name: InternalFieldName,\n _names: Names,\n isBlurEvent?: boolean,\n) =>\n !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some(\n (watchName) =>\n name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length)),\n ));\n","import { FieldRefs, InternalFieldName, Ref } from '../types';\nimport { get } from '../utils';\nimport isObject from '../utils/isObject';\n\nconst iterateFieldsByAction = (\n fields: FieldRefs,\n action: (ref: Ref, name: string) => 1 | undefined | void,\n fieldsNames?: Set | InternalFieldName[] | 0,\n abortEarly?: boolean,\n) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n\n if (field) {\n const { _f, ...currentField } = field;\n\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n break;\n } else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n break;\n } else {\n iterateFieldsByAction(currentField, action);\n }\n } else if (isObject(currentField)) {\n iterateFieldsByAction(currentField, action);\n }\n }\n }\n};\n\nexport default iterateFieldsByAction;\n","import {\n FieldError,\n FieldErrors,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport compact from '../utils/compact';\nimport get from '../utils/get';\nimport set from '../utils/set';\n\nexport default (\n errors: FieldErrors,\n error: Partial>,\n name: InternalFieldName,\n): FieldErrors => {\n const fieldArrayErrors = compact(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'file';\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import isWeb from './isWeb';\n\nexport default (value: unknown): value is HTMLElement => {\n if (!isWeb) {\n return false;\n }\n\n const owner = value ? ((value as HTMLElement).ownerDocument as Document) : 0;\n return (\n value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement)\n );\n};\n","import { Message } from '../types';\nimport isString from '../utils/isString';\n\nexport default (value: unknown): value is Message => isString(value);\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","import isUndefined from '../utils/isUndefined';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean | undefined;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: HTMLInputElement[]): CheckboxFieldResult => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n\n return defaultResult;\n};\n","type RadioFieldResult = {\n isValid: boolean;\n value: number | string | null;\n};\n\nconst defaultReturn: RadioFieldResult = {\n isValid: false,\n value: null,\n};\n\nexport default (options?: HTMLInputElement[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n","import { FieldError, Ref, ValidateResult } from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (\n isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)\n ) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n","import { ValidationRule } from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n","import { INPUT_VALIDATION_RULES } from '../constants';\nimport {\n Field,\n FieldError,\n FieldValues,\n InternalFieldErrors,\n MaxType,\n Message,\n MinType,\n NativeFieldValue,\n} from '../types';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMessage from '../utils/isMessage';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioInput from '../utils/isRadioInput';\nimport isRegex from '../utils/isRegex';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nimport appendErrors from './appendErrors';\nimport getCheckboxValue from './getCheckboxValue';\nimport getRadioValue from './getRadioValue';\nimport getValidateError from './getValidateError';\nimport getValueAndMessage from './getValueAndMessage';\n\nexport default async (\n field: Field,\n formValues: T,\n validateAllFieldCriteria: boolean,\n shouldUseNativeValidation?: boolean,\n isFieldArray?: boolean,\n): Promise => {\n const {\n ref,\n refs,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n name,\n valueAsNumber,\n mount,\n disabled,\n } = field._f;\n const inputValue: NativeFieldValue = get(formValues, name);\n if (!mount || disabled) {\n return {};\n }\n const inputRef: HTMLInputElement = refs ? refs[0] : (ref as HTMLInputElement);\n const setCustomValidity = (message?: string | boolean) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error: InternalFieldErrors = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty =\n ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(\n null,\n name,\n validateAllFieldCriteria,\n error,\n );\n const getMinMaxMessage = (\n exceedMax: boolean,\n maxLengthMessage: Message,\n minLengthMessage: Message,\n maxType: MaxType = INPUT_VALIDATION_RULES.maxLength,\n minType: MinType = INPUT_VALIDATION_RULES.minLength,\n ) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n\n if (\n isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))\n ) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue as number)) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate =\n (ref as HTMLInputElement).valueAsDate || new Date(inputValue as string);\n const convertTimeToDate = (time: unknown) =>\n new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n !!exceedMax,\n maxOutput.message,\n minOutput.message,\n INPUT_VALIDATION_RULES.max,\n INPUT_VALIDATION_RULES.min,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (\n (maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))\n ) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(\n INPUT_VALIDATION_RULES.validate,\n validateError.message,\n ),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {} as FieldError;\n\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n\n const validateError = getValidateError(\n await validate[key](inputValue, formValues),\n inputRef,\n key,\n );\n\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n\n setCustomValidity(validateError.message);\n\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n\n setCustomValidity(true);\n return error;\n};\n","import isEmptyObject from './isEmptyObject';\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nfunction baseGet(object: any, updatePath: (string | number)[]) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n\n return object;\n}\n\nfunction isEmptyArray(obj: unknown[]) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\n\nexport default function unset(object: any, path: string | (string | number)[]) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n\n const index = paths.length - 1;\n const key = paths[index];\n\n if (childObject) {\n delete childObject[key];\n }\n\n if (\n index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))\n ) {\n unset(object, paths.slice(0, -1));\n }\n\n return object;\n}\n","import { Noop } from '../types';\n\nexport type Observer = {\n next: (value: T) => void;\n};\n\nexport type Subscription = {\n unsubscribe: Noop;\n};\n\nexport type Subject = {\n readonly observers: Observer[];\n subscribe: (value: Observer) => Subscription;\n unsubscribe: Noop;\n} & Observer;\n\nexport default (): Subject => {\n let _observers: Observer[] = [];\n\n const next = (value: T) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n\n const subscribe = (observer: Observer): Subscription => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n\n const unsubscribe = () => {\n _observers = [];\n };\n\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n","import { Primitive } from '../types';\n\nimport isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import isObject from '../utils/isObject';\n\nimport isDateObject from './isDateObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepEqual(object1: any, object2: any) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n const val1 = object1[key];\n\n if (!keys2.includes(key)) {\n return false;\n }\n\n if (key !== 'ref') {\n const val2 = object2[key];\n\n if (\n (isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2\n ) {\n return false;\n }\n }\n }\n\n return true;\n}\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `select-multiple`;\n","import { FieldElement } from '../types';\n\nimport isCheckBoxInput from './isCheckBoxInput';\nimport isRadioInput from './isRadioInput';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n","import { Ref } from '../types';\n\nimport isHTMLElement from './isHTMLElement';\n\nexport default (ref: Ref) => isHTMLElement(ref) && ref.isConnected;\n","import isFunction from './isFunction';\n\nexport default (data: T): boolean => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n","import deepEqual from '../utils/deepEqual';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isUndefined from '../utils/isUndefined';\nimport objectHasFunction from '../utils/objectHasFunction';\n\nfunction markFieldsDirty(data: T, fields: Record = {}) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n } else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n\n return fields;\n}\n\nfunction getDirtyFieldsFromDefaultValues(\n data: T,\n formValues: T,\n dirtyFieldsFromValues: Record<\n Extract,\n ReturnType | boolean\n >,\n) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n if (\n isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])\n ) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n } else {\n getDirtyFieldsFromDefaultValues(\n data[key],\n isNullOrUndefined(formValues) ? {} : formValues[key],\n dirtyFieldsFromValues[key],\n );\n }\n } else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n\n return dirtyFieldsFromValues;\n}\n\nexport default (defaultValues: T, formValues: T) =>\n getDirtyFieldsFromDefaultValues(\n defaultValues,\n formValues,\n markFieldsDirty(formValues),\n );\n","import { Field, NativeFieldValue } from '../types';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n value: T,\n { valueAsNumber, valueAsDate, setValueAs }: Field['_f'],\n) =>\n isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n","import { Field } from '../types';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isFileInput from '../utils/isFileInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isRadioInput from '../utils/isRadioInput';\nimport isUndefined from '../utils/isUndefined';\n\nimport getCheckboxValue from './getCheckboxValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getRadioValue from './getRadioValue';\n\nexport default function getFieldValue(_f: Field['_f']) {\n const ref = _f.ref;\n\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n return;\n }\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n","import {\n CriteriaMode,\n Field,\n FieldName,\n FieldRefs,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport { get } from '../utils';\nimport set from '../utils/set';\n\nexport default (\n fieldsNames: Set | InternalFieldName[],\n _fields: FieldRefs,\n criteriaMode?: CriteriaMode,\n shouldUseNativeValidation?: boolean | undefined,\n) => {\n const fields: Record = {};\n\n for (const name of fieldsNames) {\n const field: Field = get(_fields, name);\n\n field && set(fields, name, field._f);\n }\n\n return {\n criteriaMode,\n names: [...fieldsNames] as FieldName[],\n fields,\n shouldUseNativeValidation,\n };\n};\n","import {\n ValidationRule,\n ValidationValue,\n ValidationValueMessage,\n} from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n rule?: ValidationRule | ValidationValueMessage,\n) =>\n isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n","import { Field } from '../types';\n\nexport default (options: Field['_f']) =>\n options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n","import { FieldError, FieldErrors, FieldValues } from '../types';\nimport get from '../utils/get';\nimport isKey from '../utils/isKey';\n\nexport default function schemaErrorLookup(\n errors: FieldErrors,\n _fields: FieldValues,\n name: string,\n): {\n error?: FieldError;\n name: string;\n} {\n const error = get(errors, name);\n\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n\n const names = name.split('.');\n\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n\n names.pop();\n }\n\n return {\n name,\n };\n}\n","import { ValidationModeFlags } from '../types';\n\nexport default (\n isBlurEvent: boolean,\n isTouched: boolean,\n isSubmitted: boolean,\n reValidateMode: {\n isOnBlur: boolean;\n isOnChange: boolean;\n },\n mode: Partial,\n) => {\n if (mode.isOnAll) {\n return false;\n } else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n } else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n","import compact from '../utils/compact';\nimport get from '../utils/get';\nimport unset from '../utils/unset';\n\nexport default (ref: T, name: string) =>\n !compact(get(ref, name)).length && unset(ref, name);\n","import { EVENTS, VALIDATION_MODE } from '../constants';\nimport {\n BatchFieldArrayUpdate,\n ChangeHandler,\n Control,\n DeepPartial,\n DelayCallback,\n EventType,\n Field,\n FieldError,\n FieldErrors,\n FieldNamesMarkedBoolean,\n FieldPath,\n FieldRefs,\n FieldValues,\n FormState,\n GetIsDirty,\n InternalFieldName,\n Names,\n Path,\n PathValue,\n Ref,\n SetFieldValue,\n SetValueConfig,\n Subjects,\n UseFormClearErrors,\n UseFormGetFieldState,\n UseFormGetValues,\n UseFormHandleSubmit,\n UseFormProps,\n UseFormRegister,\n UseFormReset,\n UseFormResetField,\n UseFormReturn,\n UseFormSetError,\n UseFormSetFocus,\n UseFormSetValue,\n UseFormTrigger,\n UseFormUnregister,\n UseFormWatch,\n WatchInternal,\n WatchObserver,\n} from '../types';\nimport cloneObject from '../utils/cloneObject';\nimport compact from '../utils/compact';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport createSubject from '../utils/createSubject';\nimport deepEqual from '../utils/deepEqual';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDateObject from '../utils/isDateObject';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isRadioOrCheckbox from '../utils/isRadioOrCheckbox';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\nimport isWeb from '../utils/isWeb';\nimport live from '../utils/live';\nimport set from '../utils/set';\nimport unset from '../utils/unset';\n\nimport generateWatchOutput from './generateWatchOutput';\nimport getDirtyFields from './getDirtyFields';\nimport getEventValue from './getEventValue';\nimport getFieldValue from './getFieldValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getResolverOptions from './getResolverOptions';\nimport getRuleValue from './getRuleValue';\nimport getValidationModes from './getValidationModes';\nimport hasValidation from './hasValidation';\nimport isNameInFieldArray from './isNameInFieldArray';\nimport isWatched from './isWatched';\nimport iterateFieldsByAction from './iterateFieldsByAction';\nimport schemaErrorLookup from './schemaErrorLookup';\nimport skipValidation from './skipValidation';\nimport unsetEmptyArray from './unsetEmptyArray';\nimport updateFieldArrayRootError from './updateFieldArrayRootError';\nimport validateField from './validateField';\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n} as const;\n\nexport function createFormControl<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n>(\n props: UseFormProps = {},\n flushRootRender: () => void,\n): Omit, 'formState'> {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState: FormState = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n errors: _options.errors || {},\n disabled: _options.disabled || false,\n };\n let _fields: FieldRefs = {};\n let _defaultValues =\n isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names: Names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback: DelayCallback | null;\n let timer = 0;\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects: Subjects = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors =\n _options.criteriaMode === VALIDATION_MODE.all;\n\n const debounce =\n (callback: T) =>\n (wait: number) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n\n const _updateValid = async (shouldUpdateValid?: boolean) => {\n if (_proxyFormState.isValid || shouldUpdateValid) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n\n const _updateIsValidating = (value: boolean) =>\n _proxyFormState.isValidating &&\n _subjects.state.next({\n isValidating: value,\n });\n\n const _updateFieldArray: BatchFieldArrayUpdate = (\n name,\n values = [],\n method,\n args,\n shouldSetValues = true,\n shouldUpdateFieldsAndState = true,\n ) => {\n if (args && method) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n\n if (\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))\n ) {\n const errors = method(\n get(_formState.errors, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n\n if (\n _proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))\n ) {\n const touchedFields = method(\n get(_formState.touchedFields, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n } else {\n set(_formValues, name, values);\n }\n };\n\n const updateErrors = (name: InternalFieldName, error: FieldError) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n\n const _setErrors = (errors: FieldErrors) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n\n const updateValidAndValue = (\n name: InternalFieldName,\n shouldSkipSetValueAs: boolean,\n value?: unknown,\n ref?: Ref,\n ) => {\n const field: Field = get(_fields, name);\n\n if (field) {\n const defaultValue = get(\n _formValues,\n name,\n isUndefined(value) ? get(_defaultValues, name) : value,\n );\n\n isUndefined(defaultValue) ||\n (ref && (ref as HTMLInputElement).defaultChecked) ||\n shouldSkipSetValueAs\n ? set(\n _formValues,\n name,\n shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f),\n )\n : setFieldValue(name, defaultValue);\n\n _state.mount && _updateValid();\n }\n };\n\n const updateTouchAndDirty = (\n name: InternalFieldName,\n fieldValue: unknown,\n isBlurEvent?: boolean,\n shouldDirty?: boolean,\n shouldRender?: boolean,\n ): Partial<\n Pick, 'dirtyFields' | 'isDirty' | 'touchedFields'>\n > => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output: Partial> & { name: string } = {\n name,\n };\n const disabledField = !!(\n get(_fields, name) && get(_fields, name)._f.disabled\n );\n\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n\n const isCurrentFieldPristine =\n disabledField || deepEqual(get(_defaultValues, name), fieldValue);\n\n isPreviousDirty = !!(!disabledField && get(_formState.dirtyFields, name));\n isCurrentFieldPristine || disabledField\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n\n return shouldUpdateField ? output : {};\n };\n\n const shouldRenderByError = (\n name: InternalFieldName,\n isValid?: boolean,\n error?: FieldError,\n fieldState?: {\n dirty?: FieldNamesMarkedBoolean;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean;\n },\n ) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid =\n _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n\n if (props.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(props.delayError);\n } else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n\n if (\n (error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid\n ) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n\n _subjects.state.next(updatedFormState);\n }\n\n _updateIsValidating(false);\n };\n\n const _executeSchema = async (name?: InternalFieldName[]) =>\n _options.resolver!(\n _formValues as TFieldValues,\n _options.context,\n getResolverOptions(\n name || _names.mount,\n _fields,\n _options.criteriaMode,\n _options.shouldUseNativeValidation,\n ),\n );\n\n const executeSchemaAndUpdateState = async (names?: InternalFieldName[]) => {\n const { errors } = await _executeSchema(names);\n\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n } else {\n _formState.errors = errors;\n }\n\n return errors;\n };\n\n const executeBuiltInValidation = async (\n fields: FieldRefs,\n shouldOnlyCheckValid?: boolean,\n context: {\n valid: boolean;\n } = {\n valid: true,\n },\n ) => {\n for (const name in fields) {\n const field = fields[name];\n\n if (field) {\n const { _f, ...fieldValue } = field;\n\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const fieldError = await validateField(\n field,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation && !shouldOnlyCheckValid,\n isFieldArrayRoot,\n );\n\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(\n _formState.errors,\n fieldError,\n _f.name,\n )\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n\n fieldValue &&\n (await executeBuiltInValidation(\n fieldValue,\n shouldOnlyCheckValid,\n context,\n ));\n }\n }\n\n return context.valid;\n };\n\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field: Field = get(_fields, name);\n\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name as FieldPath);\n }\n\n _names.unMount = new Set();\n };\n\n const _getDirty: GetIsDirty = (name, data) => (\n name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues)\n );\n\n const _getWatch: WatchInternal = (\n names,\n defaultValue,\n isGlobal,\n ) =>\n generateWatchOutput(\n names,\n _names,\n {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n },\n isGlobal,\n defaultValue,\n );\n\n const _getFieldArray = (\n name: InternalFieldName,\n ): Partial[] =>\n compact(\n get(\n _state.mount ? _formValues : _defaultValues,\n name,\n props.shouldUnregister ? get(_defaultValues, name, []) : [],\n ),\n );\n\n const setFieldValue = (\n name: InternalFieldName,\n value: SetFieldValue,\n options: SetValueConfig = {},\n ) => {\n const field: Field = get(_fields, name);\n let fieldValue: unknown = value;\n\n if (field) {\n const fieldReference = field._f;\n\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach(\n (optionRef) =>\n (optionRef.selected = (\n fieldValue as InternalFieldName[]\n ).includes(optionRef.value)),\n );\n } else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach(\n (checkboxRef) =>\n (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!(fieldValue as []).find(\n (data: string) => data === checkboxRef.value,\n )\n : fieldValue === checkboxRef.value),\n )\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n } else {\n fieldReference.refs.forEach(\n (radioRef: HTMLInputElement) =>\n (radioRef.checked = radioRef.value === fieldValue),\n );\n }\n } else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n } else {\n fieldReference.ref.value = fieldValue;\n\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(\n name,\n fieldValue,\n options.shouldTouch,\n options.shouldDirty,\n true,\n );\n\n options.shouldValidate && trigger(name as Path);\n };\n\n const setValues = <\n T extends InternalFieldName,\n K extends SetFieldValue,\n U extends SetValueConfig,\n >(\n name: T,\n value: K,\n options: U,\n ) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n\n (_names.array.has(name) ||\n !isPrimitive(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n\n const setValue: UseFormSetValue = (\n name,\n value,\n options = {},\n ) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n\n set(_formValues, name, cloneValue);\n\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: { ..._formValues },\n });\n\n if (\n (_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty\n ) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n } else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n !_state.mount && flushRootRender();\n };\n\n const onChange: ChangeHandler = async (event) => {\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field: Field = get(_fields, name);\n const getCurrentFieldValue = () =>\n target.type ? getFieldValue(field._f) : getEventValue(event);\n const _updateIsFieldValueUpdated = (fieldValue: any): void => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n fieldValue === get(_formValues, name, fieldValue);\n };\n\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent =\n event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation =\n (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(\n isBlurEvent,\n get(_formState.touchedFields, name),\n _formState.isSubmitted,\n validationModeAfterSubmit,\n validationModeBeforeSubmit,\n );\n const watched = isWatched(name, _names, isBlurEvent);\n\n set(_formValues, name, fieldValue);\n\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n } else if (field._f.onChange) {\n field._f.onChange(event);\n }\n\n const fieldState = updateTouchAndDirty(\n name,\n fieldValue,\n isBlurEvent,\n false,\n );\n\n const shouldRender = !isEmptyObject(fieldState) || watched;\n\n !isBlurEvent &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n\n if (shouldSkipValidation) {\n _proxyFormState.isValid && _updateValid();\n\n return (\n shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) })\n );\n }\n\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n\n _updateIsValidating(true);\n\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(\n _formState.errors,\n _fields,\n name,\n );\n const errorLookupResult = schemaErrorLookup(\n errors,\n _fields,\n previousErrorLookupResult.name || name,\n );\n\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n\n isValid = isEmptyObject(errors);\n }\n } else {\n error = (\n await validateField(\n field,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation,\n )\n )[name];\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n } else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(\n field._f.deps as\n | FieldPath\n | FieldPath[],\n );\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n\n const _focusInput = (ref: Ref, key: string) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n\n const trigger: UseFormTrigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name) as InternalFieldName[];\n\n _updateIsValidating(true);\n\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(\n isUndefined(name) ? name : fieldNames,\n );\n\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n } else if (name) {\n validationResult = (\n await Promise.all(\n fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(\n field && field._f ? { [fieldName]: field } : field,\n );\n }),\n )\n ).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n } else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n isValidating: false,\n });\n\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(\n _fields,\n _focusInput,\n name ? fieldNames : _names.mount,\n );\n\n return validationResult;\n };\n\n const getValues: UseFormGetValues = (\n fieldNames?:\n | FieldPath\n | ReadonlyArray>,\n ) => {\n const values = {\n ..._defaultValues,\n ...(_state.mount ? _formValues : {}),\n };\n\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n\n const getFieldState: UseFormGetFieldState = (\n name,\n formState,\n ) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n error: get((formState || _formState).errors, name),\n });\n\n const clearErrors: UseFormClearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) =>\n unset(_formState.errors, inputName),\n );\n\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n\n const setError: UseFormSetError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n\n set(_formState.errors, name, {\n ...error,\n ref,\n });\n\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n\n const watch: UseFormWatch = (\n name?:\n | FieldPath\n | ReadonlyArray>\n | WatchObserver,\n defaultValue?: DeepPartial,\n ) =>\n isFunction(name)\n ? _subjects.values.subscribe({\n next: (payload) =>\n name(\n _getWatch(undefined, defaultValue),\n payload as {\n name?: FieldPath;\n type?: EventType;\n value?: unknown;\n },\n ),\n })\n : _getWatch(\n name as InternalFieldName | InternalFieldName[],\n defaultValue,\n true,\n );\n\n const unregister: UseFormUnregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n\n _subjects.values.next({\n values: { ..._formValues },\n });\n\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n\n !options.keepIsValid && _updateValid();\n };\n\n const _updateDisabledField: Control['_updateDisabledField'] = ({\n disabled,\n name,\n field,\n fields,\n value,\n }) => {\n if (isBoolean(disabled)) {\n const inputValue = disabled\n ? undefined\n : isUndefined(value)\n ? getFieldValue(field ? field._f : get(fields, name)._f)\n : value;\n set(_formValues, name, inputValue);\n updateTouchAndDirty(name, inputValue, false, false, true);\n }\n };\n\n const register: UseFormRegister = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled);\n\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n\n if (field) {\n _updateDisabledField({\n field,\n disabled: options.disabled,\n name,\n value: options.value,\n });\n } else {\n updateValidAndValue(name, true, options.value);\n }\n\n return {\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength) as number,\n maxLength: getRuleValue(options.maxLength) as number,\n pattern: getRuleValue(options.pattern) as string,\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref: HTMLInputElement | null): void => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? (ref.querySelectorAll('input,select,textarea')[0] as Ref) || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n\n if (\n radioOrCheckbox\n ? refs.find((option: Ref) => option === fieldRef)\n : fieldRef === field._f.ref\n ) {\n return;\n }\n\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n\n updateValidAndValue(name, false, undefined, fieldRef);\n } else {\n field = get(_fields, name, {});\n\n if (field._f) {\n field._f.mount = false;\n }\n\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n\n const _focusError = () =>\n _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n\n const _disableForm = (disabled?: boolean) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(\n _fields,\n (ref, name) => {\n let requiredDisabledState = disabled;\n const currentField = get(_fields, name);\n if (currentField && isBoolean(currentField._f.disabled)) {\n requiredDisabledState ||= currentField._f.disabled;\n }\n\n ref.disabled = requiredDisabledState;\n },\n 0,\n false,\n );\n }\n };\n\n const handleSubmit: UseFormHandleSubmit =\n (onValid, onInvalid) => async (e) => {\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n\n _subjects.state.next({\n isSubmitting: true,\n });\n\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n } else {\n await executeBuiltInValidation(_fields);\n }\n\n unset(_formState.errors, 'root');\n\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n await onValid(fieldValues as TFieldValues, e);\n } else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors),\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n };\n\n const resetField: UseFormResetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n } else {\n setValue(\n name,\n options.defaultValue as PathValue<\n TFieldValues,\n FieldPath\n >,\n );\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n\n _subjects.state.next({ ..._formState });\n }\n };\n\n const _reset: UseFormReset = (\n formValues,\n keepStateOptions = {},\n ) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const values =\n formValues && !isEmptyObject(formValues)\n ? cloneUpdatedValues\n : _defaultValues;\n\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n for (const fieldName of _names.mount) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(\n fieldName as FieldPath,\n get(values, fieldName),\n );\n }\n } else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n\n _fields = {};\n }\n\n _formValues = props.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n\n _subjects.array.next({\n values: { ...values },\n });\n\n _subjects.values.next({\n values: { ...values },\n });\n }\n\n _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n\n !_state.mount && flushRootRender();\n\n _state.mount = !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\n\n _state.watch = !!props.shouldUnregister;\n\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(\n keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)\n ),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: keepStateOptions.keepDirtyValues\n ? _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n });\n };\n\n const reset: UseFormReset = (formValues, keepStateOptions) =>\n _reset(\n isFunction(formValues)\n ? formValues(_formValues as TFieldValues)\n : formValues,\n keepStateOptions,\n );\n\n const setFocus: UseFormSetFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect && fieldRef.select();\n }\n }\n };\n\n const _updateFormState = (\n updatedFormState: Partial>,\n ) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n\n const _resetDefaultValues = () =>\n isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n\n return {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _updateDisabledField,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _disableForm,\n _subjects,\n _proxyFormState,\n _setErrors,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n","/* eslint-disable jsx-a11y/anchor-has-content */\n/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, { useRef, useState } from 'react';\nimport emailjs from '@emailjs/browser';\nimport { useForm } from 'react-hook-form';\n\nexport default function Contact() {\n const form = useRef();\n const { register, handleSubmit, formState: { errors } } = useForm();\n const [isFormSend, setIsFormSend] = useState(false)\n const sendEmail = (e) => {\n setIsFormSend(true);\n e.preventDefault();\n emailjs.sendForm('service_ir6g7oq', 'template_35w7158', form.current, 'user_qTijygrCJ9GOl8U9kgvzs')\n .then((result) => {\n console.log(result.text);\n setIsFormSend(false);\n }, (error) => {\n console.log(error.text);\n setIsFormSend(false);\n });\n e.target.reset();\n alert(\"Your message has ben successfully sent!\");\n }\n return (\n
        \n
        \n
        \n
        \n
        Contact
        \n
        \n
        \n
        \n
        \n \n
        \n \n \n
        \n {errors.flname &&
        This field is required.
        }\n
        \n
        \n \n
        \n \n \n
        \n {errors.email &&
        This field is required.
        }\n
        \n
        \n \n
        \n \n \n
        \n {errors.subject &&
        This field is required.
        }\n
        \n
        \n \n \n {errors.message &&
        This field is required.
        }\n
        \n \n
        \n
        \n \n
        \n
        \n
        \n );\n}\n","import React from 'react';\n\nimport { createFormControl } from './logic/createFormControl';\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport deepEqual from './utils/deepEqual';\nimport isFunction from './utils/isFunction';\nimport {\n FieldValues,\n FormState,\n InternalFieldName,\n UseFormProps,\n UseFormReturn,\n} from './types';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n *
        \n * \n * \n * {errors.exampleRequired && This field is required}\n * \n *
        \n * );\n * }\n * ```\n */\nexport function useForm<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props: UseFormProps = {},\n): UseFormReturn {\n const _formControl = React.useRef<\n UseFormReturn | undefined\n >();\n const _values = React.useRef();\n const [formState, updateFormState] = React.useState>({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n errors: props.errors || {},\n disabled: props.disabled || false,\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props, () =>\n updateFormState((formState) => ({ ...formState })),\n ),\n formState,\n };\n }\n\n const control = _formControl.current.control;\n control._options = props;\n\n useSubscribe({\n subject: control._subjects.state,\n next: (\n value: Partial> & { name?: InternalFieldName },\n ) => {\n if (\n shouldRenderFormState(\n value,\n control._proxyFormState,\n control._updateFormState,\n true,\n )\n ) {\n updateFormState({ ...control._formState });\n }\n },\n });\n\n React.useEffect(\n () => control._disableForm(props.disabled),\n [control, props.disabled],\n );\n\n React.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n }\n }, [control, formState.isDirty]);\n\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n updateFormState((state) => ({ ...state }));\n } else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n\n React.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n }\n }, [props.errors, control]);\n\n React.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n\n control._removeUnmounted();\n });\n\n _formControl.current.formState = getProxyFormState(formState, control);\n\n return _formControl.current;\n}\n","import React from 'react'\n\nexport default function Footer() {\n return (\n
        \n
        \n
        \n
        Copyright 2024 © All rights reserved
        \n
        \n
        \n
        \n )\n}\n","import Navbar from \"./components/Navbar\";\nimport SocialLinks from \"./components/SocialLinks\";\nimport Introduction from \"./components/Introduction\";\nimport Resume from \"./components/Resume\";\nimport Skills from \"./components/Skills\";\nimport Projects from \"./components/Projects\";\nimport Contact from \"./components/Contact\";\nimport Footer from \"./components/Footer\";\n\nfunction App() {\n return (\n <>\n \n
        \n \n \n \n \n \n \n
        \n