{"version":3,"file":"static/js/main.3c323876.js","mappings":"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","sources":["../node_modules/content-type/index.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/enquire.js/src/Util.js","../node_modules/enquire.js/src/index.js","../node_modules/fast-deep-equal/es6/react.js","../node_modules/json2mq/index.js","../node_modules/lodash.debounce/index.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-slick/lib/arrows.js","../node_modules/react-slick/lib/default-props.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/index.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/utils/innerSliderUtils.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/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/rfdc/default.js","../node_modules/rfdc/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/classnames/index.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","core/helpers/environment.js","core/helpers/analytics.js","core/helpers/utils.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/tslib/tslib.es6.mjs","../node_modules/@tanem/svg-injector/compiled/cache.js","../node_modules/@tanem/svg-injector/compiled/clone-svg.js","../node_modules/@tanem/svg-injector/compiled/is-local.js","../node_modules/@tanem/svg-injector/compiled/make-ajax-request.js","../node_modules/@tanem/svg-injector/compiled/request-queue.js","../node_modules/@tanem/svg-injector/compiled/load-svg-cached.js","../node_modules/@tanem/svg-injector/compiled/load-svg-uncached.js","../node_modules/@tanem/svg-injector/compiled/unique-id.js","../node_modules/@tanem/svg-injector/compiled/inject-element.js","../node_modules/react-svg/compiled/ReactSVG.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-svg/compiled/owner-window.js","../node_modules/@tanem/svg-injector/compiled/svg-injector.js","../node_modules/react-svg/compiled/shallow-differs.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","core/components/atoms/Icon.jsx","core/images/icons/navigation/open.svg","core/components/atoms/Button.jsx","../node_modules/react-lottie-player/src/makeLottiePlayer.js","../node_modules/react-lottie-player/src/LottiePlayer.js","core/components/atoms/Heading.jsx","components/Slide.jsx","images/home.svg","images/arrow-right.svg","images/arrow-left.svg","web-component/HowDoesCCSWork.jsx","App.jsx","reportWebVitals.js","index.js"],"sourcesContent":["/*!\n * content-type\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * RegExp to match *( \";\" parameter ) in RFC 7231 sec 3.1.1.1\n *\n * parameter = token \"=\" ( token / quoted-string )\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\"\n * / \"+\" / \"-\" / \".\" / \"^\" / \"_\" / \"`\" / \"|\" / \"~\"\n * / DIGIT / ALPHA\n * ; any VCHAR, except delimiters\n * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE\n * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text\n * obs-text = %x80-FF\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n */\nvar PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *(\"(?:[\\u000b\\u0020\\u0021\\u0023-\\u005b\\u005d-\\u007e\\u0080-\\u00ff]|\\\\[\\u000b\\u0020-\\u00ff])*\"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g // eslint-disable-line no-control-regex\nvar TEXT_REGEXP = /^[\\u000b\\u0020-\\u007e\\u0080-\\u00ff]+$/ // eslint-disable-line no-control-regex\nvar TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * RegExp to match quoted-pair in RFC 7230 sec 3.2.6\n *\n * quoted-pair = \"\\\" ( HTAB / SP / VCHAR / obs-text )\n * obs-text = %x80-FF\n */\nvar QESC_REGEXP = /\\\\([\\u000b\\u0020-\\u00ff])/g // eslint-disable-line no-control-regex\n\n/**\n * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6\n */\nvar QUOTE_REGEXP = /([\\\\\"])/g\n\n/**\n * RegExp to match type in RFC 7231 sec 3.1.1.1\n *\n * media-type = type \"/\" subtype\n * type = token\n * subtype = token\n */\nvar TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/\n\n/**\n * Module exports.\n * @public\n */\n\nexports.format = format\nexports.parse = parse\n\n/**\n * Format object to media type.\n *\n * @param {object} obj\n * @return {string}\n * @public\n */\n\nfunction format (obj) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('argument obj is required')\n }\n\n var parameters = obj.parameters\n var type = obj.type\n\n if (!type || !TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid type')\n }\n\n var string = type\n\n // append parameters\n if (parameters && typeof parameters === 'object') {\n var param\n var params = Object.keys(parameters).sort()\n\n for (var i = 0; i < params.length; i++) {\n param = params[i]\n\n if (!TOKEN_REGEXP.test(param)) {\n throw new TypeError('invalid parameter name')\n }\n\n string += '; ' + param + '=' + qstring(parameters[param])\n }\n }\n\n return string\n}\n\n/**\n * Parse media type to object.\n *\n * @param {string|object} string\n * @return {Object}\n * @public\n */\n\nfunction parse (string) {\n if (!string) {\n throw new TypeError('argument string is required')\n }\n\n // support req/res-like objects as argument\n var header = typeof string === 'object'\n ? getcontenttype(string)\n : string\n\n if (typeof header !== 'string') {\n throw new TypeError('argument string is required to be a string')\n }\n\n var index = header.indexOf(';')\n var type = index !== -1\n ? header.slice(0, index).trim()\n : header.trim()\n\n if (!TYPE_REGEXP.test(type)) {\n throw new TypeError('invalid media type')\n }\n\n var obj = new ContentType(type.toLowerCase())\n\n // parse parameters\n if (index !== -1) {\n var key\n var match\n var value\n\n PARAM_REGEXP.lastIndex = index\n\n while ((match = PARAM_REGEXP.exec(header))) {\n if (match.index !== index) {\n throw new TypeError('invalid parameter format')\n }\n\n index += match[0].length\n key = match[1].toLowerCase()\n value = match[2]\n\n if (value.charCodeAt(0) === 0x22 /* \" */) {\n // remove quotes\n value = value.slice(1, -1)\n\n // remove escapes\n if (value.indexOf('\\\\') !== -1) {\n value = value.replace(QESC_REGEXP, '$1')\n }\n }\n\n obj.parameters[key] = value\n }\n\n if (index !== header.length) {\n throw new TypeError('invalid parameter format')\n }\n }\n\n return obj\n}\n\n/**\n * Get content-type from req/res objects.\n *\n * @param {object}\n * @return {Object}\n * @private\n */\n\nfunction getcontenttype (obj) {\n var header\n\n if (typeof obj.getHeader === 'function') {\n // res-like\n header = obj.getHeader('content-type')\n } else if (typeof obj.headers === 'object') {\n // req-like\n header = obj.headers && obj.headers['content-type']\n }\n\n if (typeof header !== 'string') {\n throw new TypeError('content-type header is missing from object')\n }\n\n return header\n}\n\n/**\n * Quote a string if necessary.\n *\n * @param {string} val\n * @return {string}\n * @private\n */\n\nfunction qstring (val) {\n var str = String(val)\n\n // no need to quote tokens\n if (TOKEN_REGEXP.test(str)) {\n return str\n }\n\n if (str.length > 0 && !TEXT_REGEXP.test(str)) {\n throw new TypeError('invalid parameter value')\n }\n\n return '\"' + str.replace(QUOTE_REGEXP, '\\\\$1') + '\"'\n}\n\n/**\n * Class to represent a content type.\n * @private\n */\nfunction ContentType (type) {\n this.parameters = Object.create(null)\n this.type = type\n}\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n var envHasBigInt64Array = typeof BigInt64Array !== 'undefined';\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n if ((a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n for (i of a.entries())\n if (!b.has(i[0])) return false;\n for (i of a.entries())\n if (!equal(i[1], b.get(i[0]))) return false;\n return true;\n }\n\n if ((a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n for (i of a.entries())\n if (!b.has(i[0])) return false;\n return true;\n }\n\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator†letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '<svg xmlns=\"http://www.w3.org/2000/svg\">',\r\n '<filter id=\"' + id + '\">',\r\n '<feColorMatrix type=\"matrix\" color-interpolation-filters=\"sRGB\" values=\"',\r\n '0.3, 0.3, 0.3, 0, 0, ',\r\n '0.3, 0.3, 0.3, 0, 0, ',\r\n '0.3, 0.3, 0.3, 0, 0, ',\r\n '0.3, 0.3, 0.3, 0, 0',\r\n '\"/>',\r\n '</filter>',\r\n '</svg>',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i<len;i+=1){\r\n if(this.elements[i] && this.elements[i].data.ty === 0){\r\n this.elements[i].resize(this.globalData.transformCanvas);\r\n }\r\n } */\n\n this.ctxTransform(this.transformCanvas.props);\n this.canvasContext.beginPath();\n this.canvasContext.rect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n this.canvasContext.closePath();\n this.canvasContext.clip();\n this.renderFrame(this.renderedFrame, true);\n };\n\n CanvasRendererBase.prototype.destroy = function () {\n if (this.renderConfig.clearCanvas && this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(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)}function kb(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\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=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(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=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.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"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&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(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,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;function Lg(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Mg=Uf(null),Ng=null,Og=null,Pg=null;function Qg(){Pg=Og=Ng=null}function Rg(a){var b=Mg.current;E(Mg);a._currentValue=b}\nfunction Sg(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}function Tg(a,b){Ng=a;Pg=Og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(Ug=!0),a.firstContext=null)}\nfunction Vg(a){var b=a._currentValue;if(Pg!==a)if(a={context:a,memoizedValue:b,next:null},null===Og){if(null===Ng)throw Error(p(308));Og=a;Ng.dependencies={lanes:0,firstContext:a}}else Og=Og.next=a;return b}var Wg=null;function Xg(a){null===Wg?Wg=[a]:Wg.push(a)}function Yg(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,Xg(b)):(c.next=e.next,e.next=c);b.interleaved=c;return Zg(a,d)}\nfunction Zg(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var $g=!1;function ah(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function ch(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction dh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return Zg(a,c)}e=d.interleaved;null===e?(b.next=b,Xg(d)):(b.next=e.next,e.next=b);d.interleaved=b;return Zg(a,c)}function eh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction fh(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction gh(a,b,c,d){var e=a.updateQueue;$g=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:$g=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);hh|=g;a.lanes=g;a.memoizedState=q}}\nfunction ih(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var jh=(new aa.Component).refs;function kh(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar nh={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=L(),d=\nlh(a),e=ch(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=dh(a,e,d);null!==b&&(mh(b,a,d,c),eh(b,a,d))}};function oh(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction ph(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=Vg(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=nh;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction qh(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&nh.enqueueReplaceState(b,b.state,null)}\nfunction rh(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jh;ah(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=Vg(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(kh(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&nh.enqueueReplaceState(e,e.state,null),gh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}\nfunction sh(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===jh&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction th(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function uh(a){var b=a._init;return b(a._payload)}\nfunction vh(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=wh(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=xh(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&uh(f)===b.type))return d=e(b,c.props),d.ref=sh(a,b,c),d.return=a,d;d=yh(c.type,c.key,c.props,null,a.mode,d);d.ref=sh(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=zh(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Ah(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=xh(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=yh(b.type,b.key,b.props,null,a.mode,c),\nc.ref=sh(a,null,b),c.return=a,c;case wa:return b=zh(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Ah(b,a.mode,c,null),b.return=a,b;th(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);th(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);th(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;a<Nh.length;a++)Nh[a]._workInProgressVersionPrimary=null;Nh.length=0}var Ph=ua.ReactCurrentDispatcher,Qh=ua.ReactCurrentBatchConfig,Rh=0,N=null,O=null,P=null,Sh=!1,Th=!1,Uh=0,Vh=0;function Q(){throw Error(p(321));}function Wh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Xh(a,b,c,d,e,f){Rh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Ph.current=null===a||null===a.memoizedState?Yh:Zh;a=c(d,e);if(Th){f=0;do{Th=!1;Uh=0;if(25<=f)throw Error(p(301));f+=1;P=O=null;b.updateQueue=null;Ph.current=$h;a=c(d,e)}while(Th)}Ph.current=ai;b=null!==O&&null!==O.next;Rh=0;P=O=N=null;Sh=!1;if(b)throw Error(p(300));return a}function bi(){var a=0!==Uh;Uh=0;return a}\nfunction ci(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function di(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(p(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction ei(a,b){return\"function\"===typeof b?b(a):b}\nfunction fi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=O,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){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Rh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;N.lanes|=m;hh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(Ug=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,N.lanes|=f,hh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction gi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(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]}function hi(){}\nfunction ii(a,b){var c=N,d=di(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,Ug=!0);d=d.queue;ji(ki.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==P&&P.memoizedState.tag&1){c.flags|=2048;li(9,mi.bind(null,c,d,e,b),void 0,null);if(null===R)throw Error(p(349));0!==(Rh&30)||ni(c,b,e)}return e}function ni(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction mi(a,b,c,d){b.value=c;b.getSnapshot=d;oi(b)&&pi(a)}function ki(a,b,c){return c(function(){oi(b)&&pi(a)})}function oi(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function pi(a){var b=Zg(a,1);null!==b&&mh(b,a,1,-1)}\nfunction qi(a){var b=ci();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ei,lastRenderedState:a};b.queue=a;a=a.dispatch=ri.bind(null,N,a);return[b.memoizedState,a]}\nfunction li(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function si(){return di().memoizedState}function ti(a,b,c,d){var e=ci();N.flags|=a;e.memoizedState=li(1|b,c,void 0,void 0===d?null:d)}\nfunction ui(a,b,c,d){var e=di();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Wh(d,g.deps)){e.memoizedState=li(b,c,f,d);return}}N.flags|=a;e.memoizedState=li(1|b,c,f,d)}function vi(a,b){return ti(8390656,8,a,b)}function ji(a,b){return ui(2048,8,a,b)}function wi(a,b){return ui(4,2,a,b)}function xi(a,b){return ui(4,4,a,b)}\nfunction yi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function zi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ui(4,4,yi.bind(null,b,a),c)}function Ai(){}function Bi(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Ci(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Di(a,b,c){if(0===(Rh&21))return a.baseState&&(a.baseState=!1,Ug=!0),a.memoizedState=c;He(c,b)||(c=yc(),N.lanes|=c,hh|=c,a.baseState=!0);return b}function Ei(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Vh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Zh={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)},\nuseDebugValue:Ai,useDeferredValue:function(a){var b=di();return Di(b,O.memoizedState,a)},useTransition:function(){var a=fi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},$h={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var b=di();return null===\nO?b.memoizedState=a:Di(b,O.memoizedState,a)},useTransition:function(){var a=gi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(a,b){try{var c=\"\",d=b;do c+=Pa(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,digest:null}}function Li(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}\nfunction Mi(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Ni=\"function\"===typeof WeakMap?WeakMap:Map;function Oi(a,b,c){c=ch(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Pi||(Pi=!0,Qi=d);Mi(a,b)};return c}\nfunction Ri(a,b,c){c=ch(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Mi(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Mi(a,b);\"function\"!==typeof d&&(null===Si?Si=new Set([this]):Si.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Ti(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Ni;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ui.bind(null,a,b,c),b.then(a,a))}function Vi(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Wi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=ch(-1,1),b.tag=2,dh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Xi=ua.ReactCurrentOwner,Ug=!1;function Yi(a,b,c,d){b.child=null===a?Ch(b,null,c,d):Bh(b,a.child,c,d)}\nfunction Zi(a,b,c,d,e){c=c.render;var f=b.ref;Tg(b,e);d=Xh(a,b,c,d,f,e);c=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&c&&vg(b);b.flags|=1;Yi(a,b,d,e);return b.child}\nfunction aj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!bj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,cj(a,b,f,d,e);a=yh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return $i(a,b,e)}b.flags|=1;a=wh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction cj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(Ug=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(Ug=!0);else return b.lanes=a.lanes,$i(a,b,e)}return dj(a,b,c,d,e)}\nfunction ej(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(fj,gj),gj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(fj,gj),gj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(fj,gj);gj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(fj,gj),gj|=d;Yi(a,b,e,c);return b.child}function hj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function dj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);Tg(b,e);c=Xh(a,b,c,d,f,e);d=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&d&&vg(b);b.flags|=1;Yi(a,b,c,e);return b.child}\nfunction ij(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;Tg(b,e);if(null===b.stateNode)jj(a,b),ph(b,c,d),rh(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=Vg(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&qh(b,g,d,l);$g=!1;var r=b.memoizedState;g.state=r;gh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||$g?(\"function\"===typeof m&&(kh(b,c,m,d),k=b.memoizedState),(h=$g||oh(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Lg(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=Vg(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&qh(b,g,d,k);$g=!1;r=b.memoizedState;g.state=r;gh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||$g?(\"function\"===typeof y&&(kh(b,c,y,d),n=b.memoizedState),(l=$g||oh(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return kj(a,b,c,d,f,e)}\nfunction kj(a,b,c,d,e,f){hj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),$i(a,b,f);d=b.stateNode;Xi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Bh(b,a.child,null,f),b.child=Bh(b,null,h,f)):Yi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function lj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);Ih(a,b.containerInfo)}\nfunction mj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Yi(a,b,c,d);return b.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction pj(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(M,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=qj(g,d,0,null),a=Ah(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=oj(c),b.memoizedState=nj,a):rj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return sj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=wh(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=wh(h,f):(f=Ah(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?oj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=nj;return d}f=a.child;a=f.sibling;d=wh(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction rj(a,b){b=qj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function tj(a,b,c,d){null!==d&&Jg(d);Bh(b,a.child,null,c);a=rj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction sj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Li(Error(p(422))),tj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=qj({mode:\"visible\",children:d.children},e,0,null);f=Ah(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Bh(b,a.child,null,g);b.child.memoizedState=oj(g);b.memoizedState=nj;return f}if(0===(b.mode&1))return tj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Li(f,d,void 0);return tj(a,b,g,d)}h=0!==(g&a.childLanes);if(Ug||h){d=R;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,Zg(a,e),mh(d,a,e,-1))}uj();d=Li(Error(p(421)));return tj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=vj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=rj(b,d.children);b.flags|=4096;return b}function wj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);Sg(a.return,b,c)}\nfunction xj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction yj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Yi(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&wj(a,c,b);else if(19===a.tag)wj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(M,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Mh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);xj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Mh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}xj(b,!0,c,null,f);break;case \"together\":xj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction jj(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function $i(a,b,c){null!==a&&(b.dependencies=a.dependencies);hh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=wh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=wh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction zj(a,b,c){switch(b.tag){case 3:lj(b);Ig();break;case 5:Kh(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:Ih(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Mg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(M,M.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return pj(a,b,c);G(M,M.current&1);a=$i(a,b,c);return null!==a?a.sibling:null}G(M,M.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return yj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(M,M.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,ej(a,b,c)}return $i(a,b,c)}var Aj,Bj,Cj,Dj;\nAj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&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}c.sibling.return=c.return;c=c.sibling}};Bj=function(){};\nCj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;Hh(Eh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Dj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Ej(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Fj(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;Jh();E(Wf);E(H);Oh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Gj(zg),zg=null));Bj(a,b);S(b);return null;case 5:Lh(b);var e=Hh(Gh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Cj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Dj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=Hh(Gh.current);Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(M);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Gj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(M.current&1)?0===T&&(T=3):uj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return Jh(),\nBj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return Rg(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(M);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Ej(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Mh(a);if(null!==g){b.flags|=128;Ej(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(M,M.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Hj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Yj=!1;break a;case 3:X=h.stateNode.containerInfo;Yj=!0;break a;case 4:X=h.stateNode.containerInfo;Yj=!0;break a}h=h.return}if(null===X)throw Error(p(160));ak(f,g,e);X=null;Yj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)ek(b,a),b=b.sibling}\nfunction ek(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:dk(b,a);fk(a);if(d&4){try{Qj(3,a,a.return),Rj(3,a)}catch(t){W(a,a.return,t)}try{Qj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);break;case 5:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:dk(b,a);fk(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:dk(b,a);fk(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:dk(b,a);fk(a);break;case 13:dk(b,a);fk(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(gk=B()));d&4&&bk(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,dk(b,a),U=l):dk(b,a);fk(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Qj(4,r,r.return);break;case 1:Mj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Mj(r,r.return);break;case 22:if(null!==r.memoizedState){hk(q);continue}}null!==y?(y.return=r,V=y):hk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:dk(b,a);fk(a);d&4&&bk(a);break;case 21:break;default:dk(b,\na),fk(a)}}function fk(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Uj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Vj(a);Xj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Vj(a);Wj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function ik(a,b,c){V=a;jk(a,b,c)}\nfunction jk(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Kj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Kj;var l=U;Kj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?kk(e):null!==k?(k.return=g,V=k):kk(e);for(;null!==f;)V=f,jk(f,b,c),f=f.sibling;V=e;Kj=h;U=l}lk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):lk(a,b,c)}}\nfunction lk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Rj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Lg(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&ih(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}ih(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Sj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function hk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction kk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Rj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Sj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Sj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar mk=Math.ceil,nk=ua.ReactCurrentDispatcher,ok=ua.ReactCurrentOwner,pk=ua.ReactCurrentBatchConfig,K=0,R=null,Y=null,Z=0,gj=0,fj=Uf(0),T=0,qk=null,hh=0,rk=0,sk=0,tk=null,uk=null,gk=0,Hj=Infinity,vk=null,Pi=!1,Qi=null,Si=null,wk=!1,xk=null,yk=0,zk=0,Ak=null,Bk=-1,Ck=0;function L(){return 0!==(K&6)?B():-1!==Bk?Bk:Bk=B()}\nfunction lh(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Ck&&(Ck=yc()),Ck;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function mh(a,b,c,d){if(50<zk)throw zk=0,Ak=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==R)a===R&&(0===(K&2)&&(rk|=c),4===T&&Dk(a,Z)),Ek(a,d),1===c&&0===K&&0===(b.mode&1)&&(Hj=B()+500,fg&&jg())}\nfunction Ek(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===R?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Fk.bind(null,a)):hg(Fk.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Gk(c,Hk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Hk(a,b){Bk=-1;Ck=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Ik()&&a.callbackNode!==c)return null;var d=uc(a,a===R?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Jk(a,d);else{b=d;var e=K;K|=2;var f=Kk();if(R!==a||Z!==b)vk=null,Hj=B()+500,Lk(a,b);do try{Mk();break}catch(h){Nk(a,h)}while(1);Qg();nk.current=f;K=e;null!==Y?b=0:(R=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Ok(a,e)));if(1===b)throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;if(6===b)Dk(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Pk(e)&&(b=Jk(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Ok(a,f))),1===b))throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Qk(a,uk,vk);break;case 3:Dk(a,d);if((d&130023424)===d&&(b=gk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){L();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),b);break}Qk(a,uk,vk);break;case 4:Dk(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),d);break}Qk(a,uk,vk);break;case 5:Qk(a,uk,vk);break;default:throw Error(p(329));}}}Ek(a,B());return a.callbackNode===c?Hk.bind(null,a):null}\nfunction Ok(a,b){var c=tk;a.current.memoizedState.isDehydrated&&(Lk(a,b).flags|=256);a=Jk(a,b);2!==a&&(b=uk,uk=c,null!==b&&Gj(b));return a}function Gj(a){null===uk?uk=a:uk.push.apply(uk,a)}\nfunction Pk(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Dk(a,b){b&=~sk;b&=~rk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Fk(a){if(0!==(K&6))throw Error(p(327));Ik();var b=uc(a,0);if(0===(b&1))return Ek(a,B()),null;var c=Jk(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Ok(a,d))}if(1===c)throw c=qk,Lk(a,0),Dk(a,b),Ek(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Qk(a,uk,vk);Ek(a,B());return null}\nfunction Rk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Hj=B()+500,fg&&jg())}}function Sk(a){null!==xk&&0===xk.tag&&0===(K&6)&&Ik();var b=K;K|=1;var c=pk.transition,d=C;try{if(pk.transition=null,C=1,a)return a()}finally{C=d,pk.transition=c,K=b,0===(K&6)&&jg()}}function Ij(){gj=fj.current;E(fj)}\nfunction Lk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:Jh();E(Wf);E(H);Oh();break;case 5:Lh(d);break;case 4:Jh();break;case 13:E(M);break;case 19:E(M);break;case 10:Rg(d.type._context);break;case 22:case 23:Ij()}c=c.return}R=a;Y=a=wh(a.current,null);Z=gj=b;T=0;qk=null;sk=rk=hh=0;uk=tk=null;if(null!==Wg){for(b=\n0;b<Wg.length;b++)if(c=Wg[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}Wg=null}return a}\nfunction Nk(a,b){do{var c=Y;try{Qg();Ph.current=ai;if(Sh){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Sh=!1}Rh=0;P=O=N=null;Th=!1;Uh=0;ok.current=null;if(null===c||null===c.return){T=1;qk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Vi(g);if(null!==y){y.flags&=-257;Wi(y,g,h,f,b);y.mode&1&&Ti(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Ti(f,l,b);uj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Vi(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Wi(J,g,h,f,b);Jg(Ki(k,h));break a}}f=k=Ki(k,h);4!==T&&(T=2);null===tk?tk=[f]:tk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Oi(f,k,b);fh(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Si||!Si.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Ri(f,h,b);fh(f,F);break a}}f=f.return}while(null!==f)}Tk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Kk(){var a=nk.current;nk.current=ai;return null===a?ai:a}\nfunction uj(){if(0===T||3===T||2===T)T=4;null===R||0===(hh&268435455)&&0===(rk&268435455)||Dk(R,Z)}function Jk(a,b){var c=K;K|=2;var d=Kk();if(R!==a||Z!==b)vk=null,Lk(a,b);do try{Uk();break}catch(e){Nk(a,e)}while(1);Qg();K=c;nk.current=d;if(null!==Y)throw Error(p(261));R=null;Z=0;return T}function Uk(){for(;null!==Y;)Vk(Y)}function Mk(){for(;null!==Y&&!cc();)Vk(Y)}function Vk(a){var b=Wk(a.alternate,a,gj);a.memoizedProps=a.pendingProps;null===b?Tk(a):Y=b;ok.current=null}\nfunction Tk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Fj(c,b,gj),null!==c){Y=c;return}}else{c=Jj(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Qk(a,b,c){var d=C,e=pk.transition;try{pk.transition=null,C=1,Xk(a,b,c,d)}finally{pk.transition=e,C=d}return null}\nfunction Xk(a,b,c,d){do Ik();while(null!==xk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===R&&(Y=R=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||wk||(wk=!0,Gk(hc,function(){Ik();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=pk.transition;pk.transition=null;\nvar g=C;C=1;var h=K;K|=4;ok.current=null;Pj(a,c);ek(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;ik(c,a,e);dc();K=h;C=g;pk.transition=f}else a.current=c;wk&&(wk=!1,xk=a,yk=e);f=a.pendingLanes;0===f&&(Si=null);mc(c.stateNode,d);Ek(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Pi)throw Pi=!1,a=Qi,Qi=null,a;0!==(yk&1)&&0!==a.tag&&Ik();f=a.pendingLanes;0!==(f&1)?a===Ak?zk++:(zk=0,Ak=a):zk=0;jg();return null}\nfunction Ik(){if(null!==xk){var a=Dc(yk),b=pk.transition,c=C;try{pk.transition=null;C=16>a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Qj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Tj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Qj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Rj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,pk.transition=b}}return!1}function Yk(a,b,c){b=Ki(c,b);b=Oi(a,b,1);a=dh(a,b,1);b=L();null!==a&&(Ac(a,1,b),Ek(a,b))}\nfunction W(a,b,c){if(3===a.tag)Yk(a,a,c);else for(;null!==b;){if(3===b.tag){Yk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Si||!Si.has(d))){a=Ki(c,a);a=Ri(b,a,1);b=dh(b,a,1);a=L();null!==b&&(Ac(b,1,a),Ek(b,a));break}}b=b.return}}\nfunction Ui(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=L();a.pingedLanes|=a.suspendedLanes&c;R===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction el(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction fl(a,b,c,d,e,f,g,h,k){a=cl(c,d,!0,a,e,f,g,h,k);a.context=el(null);c=a.current;d=L();e=lh(c);f=ch(d,e);f.callback=void 0!==b&&null!==b?b:null;dh(c,f,e);a.current.lanes=e;Ac(a,e,d);Ek(a,d);return a}function gl(a,b,c,d){var e=b.current,f=L(),g=lh(e);c=el(c);null===b.context?b.context=c:b.pendingContext=c;b=ch(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=dh(e,b,g);null!==a&&(mh(a,e,g,f),eh(a,e,g));return g}\nfunction hl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function il(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function jl(a,b){il(a,b);(a=a.alternate)&&il(a,b)}function kl(){return null}var ll=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ml(a){this._internalRoot=a}\nnl.prototype.render=ml.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));gl(a,b,null,null)};nl.prototype.unmount=ml.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Sk(function(){gl(null,a,null,null)});b[uf]=null}};function nl(a){this._internalRoot=a}\nnl.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function pl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function ql(){}\nfunction rl(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=hl(g);f.call(a)}}var g=fl(b,d,a,0,null,!1,!1,\"\",ql);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Sk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=hl(k);h.call(a)}}var k=cl(a,0,!1,null,null,!1,!1,\"\",ql);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Sk(function(){gl(b,k,c,d)});return k}\nfunction sl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=hl(g);h.call(a)}}gl(b,g,a,e)}else g=rl(c,b,a,e,d);return hl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Ek(b,B()),0===(K&6)&&(Hj=B()+500,jg()))}break;case 13:Sk(function(){var b=Zg(a,1);if(null!==b){var c=L();mh(b,a,1,c)}}),jl(a,1)}};\nFc=function(a){if(13===a.tag){var b=Zg(a,134217728);if(null!==b){var c=L();mh(b,a,134217728,c)}jl(a,134217728)}};Gc=function(a){if(13===a.tag){var b=lh(a),c=Zg(a,b);if(null!==c){var d=L();mh(c,a,b,d)}jl(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Rk;Hb=Sk;\nvar tl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Rk]},ul={findFiberByHostInstance:Wc,bundleType:0,version:\"18.2.0\",rendererPackageName:\"react-dom\"};\nvar vl={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance||\nkl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.2.0-next-9e3b772b8-20220608\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var wl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!wl.isDisabled&&wl.supportsFiber)try{kc=wl.inject(vl),lc=wl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(b))throw Error(p(200));return dl(a,b,null,c)};exports.createRoot=function(a,b){if(!ol(a))throw Error(p(299));var c=!1,d=\"\",e=ll;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=cl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ml(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Sk(a)};exports.hydrate=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!ol(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=ll;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=fl(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new nl(b)};exports.render=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!pl(a))throw Error(p(40));return a._reactRootContainer?(Sk(function(){sl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Rk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!pl(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return sl(a,b,c,!1,d)};exports.version=\"18.2.0-next-9e3b772b8-20220608\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PrevArrow = exports.NextArrow = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar PrevArrow = exports.PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n var _super = _createSuper(PrevArrow);\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n return _super.apply(this, arguments);\n }\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n return prevArrow;\n }\n }]);\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\nvar NextArrow = exports.NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n var _super2 = _createSuper(NextArrow);\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n return _super2.apply(this, arguments);\n }\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n return nextArrow;\n }\n }]);\n return NextArrow;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true,\n asNavFor: null\n};\nvar _default = exports[\"default\"] = defaultProps;","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar getDotCount = function getDotCount(spec) {\n var dots;\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n return dots;\n};\nvar Dots = exports.Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n var _super = _createSuper(Dots);\n function Dots() {\n _classCallCheck(this, Dots);\n return _super.apply(this, arguments);\n }\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n var _leftBound = rightBound - (slidesToScroll - 1);\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n return Dots;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _slider = _interopRequireDefault(require(\"./slider\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar _default = exports[\"default\"] = _slider[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = exports[\"default\"] = initialState;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nvar _track = require(\"./track\");\nvar _dots = require(\"./dots\");\nvar _arrows = require(\"./arrows\");\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar InnerSlider = exports.InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n var _super = _createSuper(InnerSlider);\n function InnerSlider(props) {\n var _this;\n _classCallCheck(this, InnerSlider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n _this.ro.observe(_this.list);\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n _this.callbackTimers = [];\n }\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n _this.ro.disconnect();\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n _this.props.onReInit && _this.props.onReInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n _this.adaptHeight();\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n var setTrackStyle = _this.didPropsChange(prevProps);\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n _this.debouncedResize();\n });\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node);\n // prevent warning: setting state on unmounted component (server side rendering)\n if (!isTrackMounted) return;\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n });\n // animating state should be cleared while resizing, otherwise autoplay stops working\n _this.setState({\n animating: false\n });\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n _this.setState(updatedState, callback);\n });\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n return {\n trackStyle: _trackStyle\n };\n }\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n image.onclick = function (e) {\n prevClickHandler(e);\n image.parentNode.focus();\n };\n }\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n var currentSlide = _this.state.currentSlide;\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n _this.props.autoplay && _this.autoPlay(\"update\");\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n nodes[0] && nodes[0].focus();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n window.ontouchmove = preventDefault;\n });\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n _this.setState(state);\n if (triggerSlideHandler === undefined) return;\n _this.slideHandler(triggerSlideHandler);\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n _this.slideHandler(nextIndex);\n });\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n var autoplaying = _this.state.autoplaying;\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n var autoplaying = _this.state.autoplaying;\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n var verticalHeightStyle = null;\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n var centerPaddingStyle = null;\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n targetSlide: _this.props.initialSlide ? _this.props.initialSlide : 0,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n var ssrState = _this.ssrInit();\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\" || isNaN(prevProps[key])) {\n continue;\n }\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n return InnerSlider;\n}(_react[\"default\"].Component);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _innerSlider = require(\"./inner-slider\");\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\nvar Slider = exports[\"default\"] = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n var _super = _createSuper(Slider);\n function Slider(props) {\n var _this;\n _classCallCheck(this, Slider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n });\n // sort them in increasing order of their numerical value\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n }\n // when not using server side rendering\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n });\n\n // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var settings;\n var newProps;\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n }\n\n // force scrolling by one if centerMode is on\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n settings.slidesToScroll = 1;\n }\n // force showing one slide and scrolling by one if the fade mode is on\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n }\n\n // makes sure that children is an array, even when there is only 1 child\n var children = _react[\"default\"].Children.toArray(this.props.children);\n\n // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n return !!child;\n });\n\n // rows and slidesPerRow logic is handled here\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n var newChildren = [];\n var currentWidth = null;\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow && !settings.infinite) {\n settings.unslick = true;\n }\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, (0, _innerSliderUtils.filterSettings)(settings)), newChildren);\n }\n }]);\n return Slider;\n}(_react[\"default\"].Component);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n slickCloned = index < 0 || index >= spec.slideCount;\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n var focusedSlide;\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n };\n};\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n if (spec.fade) {\n style.position = \"relative\";\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n style.zIndex = spec.currentSlide === spec.index ? 999 : 998;\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n };\n\n // in case of lazyLoad, whether or not we want to fetch the slide\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n // push a cloned element of the desired slide\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n\n // if slide needs to be precloned or postcloned\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec)) {\n key = -preCloneNo;\n if (key >= startIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n key = childrenCount + index;\n if (key < endIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n });\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\nvar Track = exports.Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n var _super = _createSuper(Track);\n function Track() {\n var _this;\n _classCallCheck(this, Track);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n return _this;\n }\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n return Track;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSpecKeys = exports.checkNavigable = exports.changeSlide = exports.canUseDOM = exports.canGoNext = void 0;\nexports.clamp = clamp;\nexports.extractObject = void 0;\nexports.filterSettings = filterSettings;\nexports.validSettings = exports.swipeStart = exports.swipeMove = exports.swipeEnd = exports.slidesOnRight = exports.slidesOnLeft = exports.slideHandler = exports.siblingDirection = exports.safePreventDefault = exports.lazyStartIndex = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.keyHandler = exports.initializedState = exports.getWidth = exports.getTrackLeft = exports.getTrackCSS = exports.getTrackAnimateCSS = exports.getTotalSlides = exports.getSwipeDirection = exports.getSlideCount = exports.getRequiredLazySlides = exports.getPreClones = exports.getPostClones = exports.getOnDemandLazySlides = exports.getNavigableIndexes = exports.getHeight = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _defaultProps = _interopRequireDefault(require(\"../default-props\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\nvar safePreventDefault = exports.safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\nvar getOnDemandLazySlides = exports.getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n return onDemandSlides;\n};\n\n// return list of slides that need to be present\nvar getRequiredLazySlides = exports.getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n return requiredSlides;\n};\n\n// startIndex that needs to be present\nvar lazyStartIndex = exports.lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\nvar lazyEndIndex = exports.lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\nvar lazySlidesOnLeft = exports.lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\nvar lazySlidesOnRight = exports.lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n};\n\n// get width of an element\nvar getWidth = exports.getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\nvar getHeight = exports.getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\nvar getSwipeDirection = exports.getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n return \"vertical\";\n};\n\n// whether or not we can go next\nvar canGoNext = exports.canGoNext = function canGoNext(spec) {\n var canGo = true;\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n return canGo;\n};\n\n// given an object and a list of keys, return new object with given keys\nvar extractObject = exports.extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n};\n\n// get initialized state\nvar initializedState = exports.initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n return state;\n};\nvar slideHandler = exports.slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n return {\n state: state,\n nextState: nextState\n };\n};\nvar changeSlide = exports.changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n return targetSlide;\n};\nvar keyHandler = exports.keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\nvar swipeStart = exports.swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\nvar swipeMove = exports.swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n return state;\n};\nvar swipeEnd = exports.swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping);\n // reset the state of touch related state variables.\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n if (scrolling) {\n return state;\n }\n if (!touchObject.swipeLength) {\n return state;\n }\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n default:\n slideCount = activeSlide;\n }\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n return state;\n};\nvar getNavigableIndexes = exports.getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n return indexes;\n};\nvar checkNavigable = exports.checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n prevNavigable = navigables[n];\n }\n }\n return index;\n};\nvar getSlideCount = exports.getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n return true;\n });\n if (!swipedSlide) {\n return 0;\n }\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\nvar checkSpecKeys = exports.checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\nvar getTrackCSS = exports.getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight;\n\n // Fallback for IE8\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n return style;\n};\nvar getTrackAnimateCSS = exports.getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec);\n // useCSS is true by default so it can be undefined\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getTrackLeft = exports.getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n var slidesToOffset = 0;\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n }\n // shift current slide to center of the frame\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n return targetLeft;\n};\nvar getPreClones = exports.getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\nvar getPostClones = exports.getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n return spec.slideCount;\n};\nvar getTotalSlides = exports.getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\nvar siblingDirection = exports.siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n return \"left\";\n }\n};\nvar slidesOnRight = exports.slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n if (rtl) {\n return 0;\n }\n return slidesToShow - 1;\n};\nvar slidesOnLeft = exports.slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n if (rtl) {\n return slidesToShow - 1;\n }\n return 0;\n};\nvar canUseDOM = exports.canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\nvar validSettings = exports.validSettings = Object.keys(_defaultProps[\"default\"]);\nfunction filterSettings(settings) {\n return validSettings.reduce(function (acc, settingName) {\n if (settings.hasOwnProperty(settingName)) {\n acc[settingName] = settings[settingName];\n }\n return acc;\n }, {});\n}","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","'use strict'\n\nmodule.exports = require('./index.js')()\n","'use strict'\nmodule.exports = rfdc\n\nfunction copyBuffer (cur) {\n if (cur instanceof Buffer) {\n return Buffer.from(cur)\n }\n\n return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length)\n}\n\nfunction rfdc (opts) {\n opts = opts || {}\n if (opts.circles) return rfdcCircles(opts)\n\n const constructorHandlers = new Map()\n constructorHandlers.set(Date, (o) => new Date(o))\n constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn)))\n constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn)))\n if (opts.constructorHandlers) {\n for (const handler of opts.constructorHandlers) {\n constructorHandlers.set(handler[0], handler[1])\n }\n }\n\n let handler = null\n\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n const keys = Object.keys(a)\n const a2 = new Array(keys.length)\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i]\n const cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {\n a2[k] = handler(cur, fn)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n a2[k] = fn(cur)\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {\n return handler(o, clone)\n }\n const o2 = {}\n for (const k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n const cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {\n o2[k] = handler(cur, clone)\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = clone(cur)\n }\n }\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {\n return handler(o, cloneProto)\n }\n const o2 = {}\n for (const k in o) {\n const cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {\n o2[k] = handler(cur, cloneProto)\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n return o2\n }\n}\n\nfunction rfdcCircles (opts) {\n const refs = []\n const refsNew = []\n\n const constructorHandlers = new Map()\n constructorHandlers.set(Date, (o) => new Date(o))\n constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn)))\n constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn)))\n if (opts.constructorHandlers) {\n for (const handler of opts.constructorHandlers) {\n constructorHandlers.set(handler[0], handler[1])\n }\n }\n\n let handler = null\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n const keys = Object.keys(a)\n const a2 = new Array(keys.length)\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i]\n const cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {\n a2[k] = handler(cur, fn)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n const index = refs.indexOf(cur)\n if (index !== -1) {\n a2[k] = refsNew[index]\n } else {\n a2[k] = fn(cur)\n }\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {\n return handler(o, clone)\n }\n const o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (const k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n const cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {\n o2[k] = handler(cur, clone)\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n const i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = clone(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {\n return handler(o, cloneProto)\n }\n const o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (const k in o) {\n const cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {\n o2[k] = handler(cur, cloneProto)\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n const i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n}\n","/**\n * @license React\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';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.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(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=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&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\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 var F = function F() {};\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 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 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}\nmodule.exports = _createForOfIteratorHelper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _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}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// 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 + \".\" + \"fce9017f\" + \".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__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"shell-startup-engine:\";\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\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\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}\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[\"webpackChunkshell_startup_engine\"] = self[\"webpackChunkshell_startup_engine\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import 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(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export const environment = {\n isDev: process.env.REACT_APP_IS_DEV === 'true',\n isProd: process.env.REACT_APP_IS_PROD === 'true',\n assetName: process.env.REACT_APP_ANALYTICS_NAME,\n internalDomains: process.env.REACT_APP_ANALYTICS_INTERNAL_DOMAINS,\n warnAnalytics: process.env.REACT_APP_WARN_ANALYTICS === 'true'\n}\n","import { environment } from './environment'\nimport { trimSpaces } from './utils'\n\nconst assetName = environment.assetName\nconst considerTheseInternal = environment.internalDomains\n\nexport const extractAnalyticsText = (children, text, ariaLabel, component) => {\n let analyticsText = text\n if (!analyticsText) {\n // No text, try and get it from the children\n if (children) {\n if (typeof children === 'string') {\n analyticsText = children\n } else {\n // Children is an object.\n if (Array.isArray(children)) {\n // This is something like <span>A</span><span>B</span> being passed\n for (let i = 0; i < children.length; i++) {\n if (children[i].props.children) {\n analyticsText = children[i].props.children\n break\n }\n }\n } else {\n // This is something like <span>A</span> being passed\n analyticsText = children.props.children\n }\n }\n }\n // If we've still got no text then try ariaLabel\n if (!analyticsText) {\n analyticsText = ariaLabel\n }\n // If no text here then we've failed\n if (!analyticsText && environment.warnAnalytics) {\n console.warn(`${component} failed analytics check. No text found`, {\n children,\n text,\n ariaLabel,\n component\n })\n }\n }\n\n return analyticsText\n}\n\nexport const isInternalLink = (h) => {\n if (!h) {\n return true\n }\n // Treat local links as internal links\n if (h === '#' || h.startsWith('/') || h.startsWith('./')) {\n return true\n }\n // Check domain\n const internalLinkRegex = considerTheseInternal.replace(/\\./g, '[.]')\n const comp = new RegExp(internalLinkRegex)\n return comp.test(h)\n}\n\nexport const sendAnalytics = (action, actionType, text, url, currentScreen) => {\n text = trimSpaces(text)\n\n const oA = {\n assetName, // Unique name of the asset\n action, // What kind of action is it {Click, Slide/Swipe, Pagination etc}\n actionType, // Define the type of the action {If Click, is it Internal, External, Hash or Popup} {If Slide/Swipe, is it Next or Previous}\n text, // Text on the user actionable item {In case if it is a carousal, the title of the slide/card if Slide/Swidpe action}\n url: url == null ? '' : url,\n currentScreen\n }\n\n console.log('Analytics', oA)\n if (document.referrer !== '' && text) {\n window.top.postMessage(oA, '*')\n }\n}\n\nexport const sendClickInternalOrExternal = (text, url, currentScreen) => {\n if (url === '#') {\n console.log('No analytics for #. Hash should be sent elsewhere')\n } else if (isInternalLink(url)) {\n // Send only pathname in this case\n const oUrl = new URL(url)\n sendAnalytics('Click', 'Internal', text, oUrl.pathname, currentScreen)\n } else {\n sendAnalytics('Click', 'External', text, url, currentScreen)\n }\n}\n\nexport const sendClickHash = (text, url, currentScreen) => {\n sendAnalytics('Click', 'Hash', text, url, currentScreen)\n}\n\nexport const sendClickPopup = (text, url, currentScreen) => {\n sendAnalytics('Click', 'Popup', text, url, currentScreen)\n}\n\nexport const sendClickTab = (text, url, currentScreen) => {\n sendAnalytics('Click', 'Tab', text, url, currentScreen)\n}\n\nexport const sendClickAccordion = (text, url, currentScreen, isExpanded) => {\n sendAnalytics('Click', isExpanded, text, url, currentScreen)\n}\n\nexport const sendClickDownload = (text, url, currentScreen) => {\n sendAnalytics('Click', 'Download', text, url, currentScreen)\n}\n\nexport const sendSlideSwipe = (direction, text, currentScreen) => {\n sendAnalytics('Slide/Swipe', direction, text, '', currentScreen)\n}\n\nexport const sendMediaProgress = (audioOrVideo, progress, videoTitle) => {\n if (audioOrVideo !== 'Audio' && audioOrVideo !== 'Video') {\n console.warn('Analytics:sendMediaProgress: audioOrVideo should be either Audio or Video')\n }\n sendAnalytics(`${audioOrVideo} Play`, progress, videoTitle, '', '')\n}\n","import { useRef, useEffect } from 'react'\n\nexport const getClassName = (s) => {\n if (s != null) {\n return s.replace(/[^\\w]/gi, '_').toLowerCase()\n }\n\n return ''\n}\n\nexport const announceForScreenReader = (s) => {\n document.getElementById('screen_reader_announce').innerHTML = s\n return true\n}\n\nexport const trimSpaces = (s) => {\n // Check s is a string\n if (typeof s !== 'string') {\n return s\n }\n return s?.replace(/(?:^[\\s\\u00a0]+)|(?:[\\s\\u00a0]+$)/g, '')\n}\n\nexport const getNodeText = (node) => {\n if (['string', 'number'].includes(typeof node)) return node\n if (node instanceof Array) return node.map(getNodeText).join('')\n if (typeof node === 'object' && node) return getNodeText(node.props.children)\n}\n\nexport const useOnUpdate = (callback, deps) => {\n const isFirst = useRef(true)\n useEffect(() => {\n if (!isFirst.current) {\n callback()\n }\n }, deps)\n\n useEffect(() => {\n isFirst.current = false\n }, [])\n}\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","var cache = new Map();\nexport default cache;\n//# sourceMappingURL=cache.js.map","var cloneSvg = function (sourceSvg) {\n return sourceSvg.cloneNode(true);\n};\nexport default cloneSvg;\n//# sourceMappingURL=clone-svg.js.map","var isLocal = function () { return window.location.protocol === 'file:'; };\nexport default isLocal;\n//# sourceMappingURL=is-local.js.map","import { parse as parseContentType } from 'content-type';\nimport isLocal from './is-local';\nvar makeAjaxRequest = function (url, httpRequestWithCredentials, callback) {\n var httpRequest = new XMLHttpRequest();\n httpRequest.onreadystatechange = function () {\n try {\n if (!/\\.svg/i.test(url) && httpRequest.readyState === 2) {\n var contentType = httpRequest.getResponseHeader('Content-Type');\n if (!contentType) {\n throw new Error('Content type not found');\n }\n var type = parseContentType(contentType).type;\n if (!(type === 'image/svg+xml' || type === 'text/plain')) {\n throw new Error(\"Invalid content type: \".concat(type));\n }\n }\n if (httpRequest.readyState === 4) {\n if (httpRequest.status === 404 || httpRequest.responseXML === null) {\n throw new Error(isLocal()\n ? 'Note: SVG injection ajax calls do not work locally without ' +\n 'adjusting security settings in your browser. Or consider ' +\n 'using a local webserver.'\n : 'Unable to load SVG file: ' + url);\n }\n if (httpRequest.status === 200 ||\n (isLocal() && httpRequest.status === 0)) {\n callback(null, httpRequest);\n }\n else {\n throw new Error('There was a problem injecting the SVG: ' +\n httpRequest.status +\n ' ' +\n httpRequest.statusText);\n }\n }\n }\n catch (error) {\n httpRequest.abort();\n if (error instanceof Error) {\n callback(error, httpRequest);\n }\n else {\n throw error;\n }\n }\n };\n httpRequest.open('GET', url);\n httpRequest.withCredentials = httpRequestWithCredentials;\n if (httpRequest.overrideMimeType) {\n httpRequest.overrideMimeType('text/xml');\n }\n httpRequest.send();\n};\nexport default makeAjaxRequest;\n//# sourceMappingURL=make-ajax-request.js.map","import cache from './cache';\nimport cloneSvg from './clone-svg';\nvar requestQueue = {};\nexport var clear = function () {\n requestQueue = {};\n};\nexport var queueRequest = function (url, callback) {\n requestQueue[url] = requestQueue[url] || [];\n requestQueue[url].push(callback);\n};\nexport var processRequestQueue = function (url) {\n var _loop_1 = function (i, len) {\n setTimeout(function () {\n if (Array.isArray(requestQueue[url])) {\n var cacheValue = cache.get(url);\n var callback = requestQueue[url][i];\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n }\n if (cacheValue instanceof Error) {\n callback(cacheValue);\n }\n if (i === requestQueue[url].length - 1) {\n delete requestQueue[url];\n }\n }\n }, 0);\n };\n for (var i = 0, len = requestQueue[url].length; i < len; i++) {\n _loop_1(i, len);\n }\n};\n//# sourceMappingURL=request-queue.js.map","import cache from './cache';\nimport cloneSvg from './clone-svg';\nimport makeAjaxRequest from './make-ajax-request';\nimport { processRequestQueue, queueRequest } from './request-queue';\nvar loadSvgCached = function (url, httpRequestWithCredentials, callback) {\n if (cache.has(url)) {\n var cacheValue = cache.get(url);\n if (cacheValue === undefined) {\n queueRequest(url, callback);\n return;\n }\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n return;\n }\n }\n cache.set(url, undefined);\n queueRequest(url, callback);\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n var _a;\n if (error) {\n cache.set(url, error);\n }\n else if (((_a = httpRequest.responseXML) === null || _a === void 0 ? void 0 : _a.documentElement) instanceof SVGSVGElement) {\n cache.set(url, httpRequest.responseXML.documentElement);\n }\n processRequestQueue(url);\n });\n};\nexport default loadSvgCached;\n//# sourceMappingURL=load-svg-cached.js.map","import makeAjaxRequest from './make-ajax-request';\nvar loadSvgUncached = function (url, httpRequestWithCredentials, callback) {\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n var _a;\n if (error) {\n callback(error);\n }\n else if (((_a = httpRequest.responseXML) === null || _a === void 0 ? void 0 : _a.documentElement) instanceof SVGSVGElement) {\n callback(null, httpRequest.responseXML.documentElement);\n }\n });\n};\nexport default loadSvgUncached;\n//# sourceMappingURL=load-svg-uncached.js.map","var idCounter = 0;\nvar uniqueId = function () { return ++idCounter; };\nexport default uniqueId;\n//# sourceMappingURL=unique-id.js.map","import { __spreadArray } from \"tslib\";\nimport loadSvgCached from './load-svg-cached';\nimport loadSvgUncached from './load-svg-uncached';\nimport uniqueId from './unique-id';\nvar injectedElements = [];\nvar ranScripts = {};\nvar svgNamespace = 'http://www.w3.org/2000/svg';\nvar xlinkNamespace = 'http://www.w3.org/1999/xlink';\nvar injectElement = function (el, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, callback) {\n var elUrl = el.getAttribute('data-src') || el.getAttribute('src');\n if (!elUrl) {\n callback(new Error('Invalid data-src or src attribute'));\n return;\n }\n if (injectedElements.indexOf(el) !== -1) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n return;\n }\n injectedElements.push(el);\n el.setAttribute('src', '');\n var loadSvg = cacheRequests ? loadSvgCached : loadSvgUncached;\n loadSvg(elUrl, httpRequestWithCredentials, function (error, svg) {\n if (!svg) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(error);\n return;\n }\n var elId = el.getAttribute('id');\n if (elId) {\n svg.setAttribute('id', elId);\n }\n var elTitle = el.getAttribute('title');\n if (elTitle) {\n svg.setAttribute('title', elTitle);\n }\n var elWidth = el.getAttribute('width');\n if (elWidth) {\n svg.setAttribute('width', elWidth);\n }\n var elHeight = el.getAttribute('height');\n if (elHeight) {\n svg.setAttribute('height', elHeight);\n }\n var mergedClasses = Array.from(new Set(__spreadArray(__spreadArray(__spreadArray([], (svg.getAttribute('class') || '').split(' '), true), [\n 'injected-svg'\n ], false), (el.getAttribute('class') || '').split(' '), true)))\n .join(' ')\n .trim();\n svg.setAttribute('class', mergedClasses);\n var elStyle = el.getAttribute('style');\n if (elStyle) {\n svg.setAttribute('style', elStyle);\n }\n svg.setAttribute('data-src', elUrl);\n var elData = [].filter.call(el.attributes, function (at) {\n return /^data-\\w[\\w-]*$/.test(at.name);\n });\n Array.prototype.forEach.call(elData, function (dataAttr) {\n if (dataAttr.name && dataAttr.value) {\n svg.setAttribute(dataAttr.name, dataAttr.value);\n }\n });\n if (renumerateIRIElements) {\n var iriElementsAndProperties_1 = {\n clipPath: ['clip-path'],\n 'color-profile': ['color-profile'],\n cursor: ['cursor'],\n filter: ['filter'],\n linearGradient: ['fill', 'stroke'],\n marker: ['marker', 'marker-start', 'marker-mid', 'marker-end'],\n mask: ['mask'],\n path: [],\n pattern: ['fill', 'stroke'],\n radialGradient: ['fill', 'stroke'],\n };\n var element_1;\n var elements_1;\n var properties_1;\n var currentId_1;\n var newId_1;\n Object.keys(iriElementsAndProperties_1).forEach(function (key) {\n element_1 = key;\n properties_1 = iriElementsAndProperties_1[key];\n elements_1 = svg.querySelectorAll(element_1 + '[id]');\n var _loop_1 = function (a, elementsLen) {\n currentId_1 = elements_1[a].id;\n newId_1 = currentId_1 + '-' + uniqueId();\n var referencingElements;\n Array.prototype.forEach.call(properties_1, function (property) {\n referencingElements = svg.querySelectorAll('[' + property + '*=\"' + currentId_1 + '\"]');\n for (var b = 0, referencingElementLen = referencingElements.length; b < referencingElementLen; b++) {\n var attrValue = referencingElements[b].getAttribute(property);\n if (attrValue &&\n !attrValue.match(new RegExp('url\\\\(\"?#' + currentId_1 + '\"?\\\\)'))) {\n continue;\n }\n referencingElements[b].setAttribute(property, 'url(#' + newId_1 + ')');\n }\n });\n var allLinks = svg.querySelectorAll('[*|href]');\n var links = [];\n for (var c = 0, allLinksLen = allLinks.length; c < allLinksLen; c++) {\n var href = allLinks[c].getAttributeNS(xlinkNamespace, 'href');\n if (href && href.toString() === '#' + elements_1[a].id) {\n links.push(allLinks[c]);\n }\n }\n for (var d = 0, linksLen = links.length; d < linksLen; d++) {\n links[d].setAttributeNS(xlinkNamespace, 'href', '#' + newId_1);\n }\n elements_1[a].id = newId_1;\n };\n for (var a = 0, elementsLen = elements_1.length; a < elementsLen; a++) {\n _loop_1(a, elementsLen);\n }\n });\n }\n svg.removeAttribute('xmlns:a');\n var scripts = svg.querySelectorAll('script');\n var scriptsToEval = [];\n var script;\n var scriptType;\n for (var i = 0, scriptsLen = scripts.length; i < scriptsLen; i++) {\n scriptType = scripts[i].getAttribute('type');\n if (!scriptType ||\n scriptType === 'application/ecmascript' ||\n scriptType === 'application/javascript' ||\n scriptType === 'text/javascript') {\n script = scripts[i].innerText || scripts[i].textContent;\n if (script) {\n scriptsToEval.push(script);\n }\n svg.removeChild(scripts[i]);\n }\n }\n if (scriptsToEval.length > 0 &&\n (evalScripts === 'always' ||\n (evalScripts === 'once' && !ranScripts[elUrl]))) {\n for (var l = 0, scriptsToEvalLen = scriptsToEval.length; l < scriptsToEvalLen; l++) {\n new Function(scriptsToEval[l])(window);\n }\n ranScripts[elUrl] = true;\n }\n var styleTags = svg.querySelectorAll('style');\n Array.prototype.forEach.call(styleTags, function (styleTag) {\n styleTag.textContent += '';\n });\n svg.setAttribute('xmlns', svgNamespace);\n svg.setAttribute('xmlns:xlink', xlinkNamespace);\n beforeEach(svg);\n if (!el.parentNode) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(new Error('Parent node is null'));\n return;\n }\n el.parentNode.replaceChild(svg, el);\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(null, svg);\n });\n};\nexport default injectElement;\n//# sourceMappingURL=inject-element.js.map","import { SVGInjector } from '@tanem/svg-injector';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport ownerWindow from './owner-window';\nimport shallowDiffers from './shallow-differs';\nconst svgNamespace = 'http://www.w3.org/2000/svg';\nconst xlinkNamespace = 'http://www.w3.org/1999/xlink';\nexport class ReactSVG extends React.Component {\n static defaultProps = {\n afterInjection: () => undefined,\n beforeInjection: () => undefined,\n desc: '',\n evalScripts: 'never',\n fallback: null,\n httpRequestWithCredentials: false,\n loading: null,\n onError: () => undefined,\n renumerateIRIElements: true,\n title: '',\n useRequestCache: true,\n wrapper: 'div',\n };\n static propTypes = {\n afterInjection: PropTypes.func,\n beforeInjection: PropTypes.func,\n desc: PropTypes.string,\n evalScripts: PropTypes.oneOf(['always', 'once', 'never']),\n fallback: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.object,\n PropTypes.string,\n ]),\n httpRequestWithCredentials: PropTypes.bool,\n loading: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.object,\n PropTypes.string,\n ]),\n onError: PropTypes.func,\n renumerateIRIElements: PropTypes.bool,\n src: PropTypes.string.isRequired,\n title: PropTypes.string,\n useRequestCache: PropTypes.bool,\n wrapper: PropTypes.oneOf(['div', 'span', 'svg']),\n };\n initialState = {\n hasError: false,\n isLoading: true,\n };\n state = this.initialState;\n _isMounted = false;\n reactWrapper;\n nonReactWrapper;\n refCallback = (reactWrapper) => {\n this.reactWrapper = reactWrapper;\n };\n renderSVG() {\n /* istanbul ignore else */\n if (this.reactWrapper instanceof ownerWindow(this.reactWrapper).Node) {\n const { desc, evalScripts, httpRequestWithCredentials, renumerateIRIElements, src, title, useRequestCache, } = this.props;\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n const onError = this.props.onError;\n const beforeInjection = this.props.beforeInjection;\n const afterInjection = this.props.afterInjection;\n const wrapper = this.props.wrapper;\n let nonReactWrapper;\n let nonReactTarget;\n if (wrapper === 'svg') {\n nonReactWrapper = document.createElementNS(svgNamespace, wrapper);\n nonReactWrapper.setAttribute('xmlns', svgNamespace);\n nonReactWrapper.setAttribute('xmlns:xlink', xlinkNamespace);\n nonReactTarget = document.createElementNS(svgNamespace, wrapper);\n }\n else {\n nonReactWrapper = document.createElement(wrapper);\n nonReactTarget = document.createElement(wrapper);\n }\n nonReactWrapper.appendChild(nonReactTarget);\n nonReactTarget.dataset.src = src;\n this.nonReactWrapper = this.reactWrapper.appendChild(nonReactWrapper);\n const handleError = (error) => {\n this.removeSVG();\n if (!this._isMounted) {\n onError(error);\n return;\n }\n this.setState(() => ({\n hasError: true,\n isLoading: false,\n }), () => {\n onError(error);\n });\n };\n const afterEach = (error, svg) => {\n if (error) {\n handleError(error);\n return;\n }\n // TODO (Tane): It'd be better to cleanly unsubscribe from SVGInjector\n // callbacks instead of tracking a property like this.\n if (this._isMounted) {\n this.setState(() => ({\n isLoading: false,\n }), () => {\n try {\n afterInjection(svg);\n }\n catch (afterInjectionError) {\n handleError(afterInjectionError);\n }\n });\n }\n };\n const beforeEach = (svg) => {\n svg.setAttribute('role', 'img');\n if (desc) {\n const originalDesc = svg.querySelector(':scope > desc');\n if (originalDesc) {\n svg.removeChild(originalDesc);\n }\n const newDesc = document.createElement('desc');\n newDesc.innerHTML = desc;\n svg.prepend(newDesc);\n }\n if (title) {\n const originalTitle = svg.querySelector(':scope > title');\n if (originalTitle) {\n svg.removeChild(originalTitle);\n }\n const newTitle = document.createElement('title');\n newTitle.innerHTML = title;\n svg.prepend(newTitle);\n }\n try {\n beforeInjection(svg);\n }\n catch (error) {\n handleError(error);\n }\n };\n SVGInjector(nonReactTarget, {\n afterEach,\n beforeEach,\n cacheRequests: useRequestCache,\n evalScripts,\n httpRequestWithCredentials,\n renumerateIRIElements,\n });\n }\n }\n removeSVG() {\n if (this.nonReactWrapper?.parentNode) {\n this.nonReactWrapper.parentNode.removeChild(this.nonReactWrapper);\n this.nonReactWrapper = null;\n }\n }\n componentDidMount() {\n this._isMounted = true;\n this.renderSVG();\n }\n componentDidUpdate(prevProps) {\n if (shallowDiffers({ ...prevProps }, this.props)) {\n this.setState(() => this.initialState, () => {\n this.removeSVG();\n this.renderSVG();\n });\n }\n }\n componentWillUnmount() {\n this._isMounted = false;\n this.removeSVG();\n }\n render() {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n const { afterInjection, beforeInjection, desc, evalScripts, fallback: Fallback, httpRequestWithCredentials, loading: Loading, renumerateIRIElements, src, title, useRequestCache, wrapper, ...rest } = this.props;\n /* eslint-enable @typescript-eslint/no-unused-vars */\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const Wrapper = wrapper;\n return (React.createElement(Wrapper, { ...rest, ref: this.refCallback, ...(wrapper === 'svg'\n ? {\n xmlns: svgNamespace,\n xmlnsXlink: xlinkNamespace,\n }\n : {}) },\n this.state.isLoading && Loading && React.createElement(Loading, null),\n this.state.hasError && Fallback && React.createElement(Fallback, null)));\n }\n}\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","// Hat-tip: https://github.com/mui/material-ui/tree/master/packages/mui-utils/src.\nconst ownerWindow = (node) => {\n const doc = node?.ownerDocument || document;\n return doc.defaultView || window;\n};\nexport default ownerWindow;\n","import injectElement from './inject-element';\nvar SVGInjector = function (elements, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.afterAll, afterAll = _c === void 0 ? function () { return undefined; } : _c, _d = _b.afterEach, afterEach = _d === void 0 ? function () { return undefined; } : _d, _e = _b.beforeEach, beforeEach = _e === void 0 ? function () { return undefined; } : _e, _f = _b.cacheRequests, cacheRequests = _f === void 0 ? true : _f, _g = _b.evalScripts, evalScripts = _g === void 0 ? 'never' : _g, _h = _b.httpRequestWithCredentials, httpRequestWithCredentials = _h === void 0 ? false : _h, _j = _b.renumerateIRIElements, renumerateIRIElements = _j === void 0 ? true : _j;\n if (elements && 'length' in elements) {\n var elementsLoaded_1 = 0;\n for (var i = 0, j = elements.length; i < j; i++) {\n injectElement(elements[i], evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n if (elements &&\n 'length' in elements &&\n elements.length === ++elementsLoaded_1) {\n afterAll(elementsLoaded_1);\n }\n });\n }\n }\n else if (elements) {\n injectElement(elements, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n afterAll(1);\n elements = null;\n });\n }\n else {\n afterAll(0);\n }\n};\nexport default SVGInjector;\n//# sourceMappingURL=svg-injector.js.map","// Hat-tip: https://github.com/developit/preact-compat/blob/master/src/index.js#L402.\nconst shallowDiffers = (a, b) => {\n for (const i in a) {\n if (!(i in b)) {\n return true;\n }\n }\n for (const i in b) {\n if (a[i] !== b[i]) {\n return true;\n }\n }\n return false;\n};\nexport default shallowDiffers;\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import React from 'react'\nimport { ReactSVG } from 'react-svg'\n\n/*\n {\n icon: object,\n size: string,\n classes: string\n }\n*/\n\nfunction Icon ({ model }) {\n // Push theme through to icon\n let iconClasses = `fill-current ${model.classes}`\n\n // Set size of icon\n switch (model.size) {\n case 'none':\n iconClasses += ''\n break\n case 'xs':\n iconClasses += ' h-3 w-3'\n break\n case 'sm':\n iconClasses += ' h-4 w-4'\n break\n default:\n iconClasses += ' h-6 w-6'\n break\n }\n\n return <ReactSVG src={model.icon} className={iconClasses} />\n}\n\nexport default Icon\n","var _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgOpen(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"inherit\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.5 3.001a.5.5 0 0 1 .5.5V9.5a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5V6.414l-6.646 6.647a.5.5 0 0 1-.708 0l-.707-.707a.5.5 0 0 1 0-.707L17.586 5H14.5a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5l6 .001Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5 8a1 1 0 0 1 1-1h6.5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5H6a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3v-6.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5V18a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V8Z\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgOpen);\nexport default __webpack_public_path__ + \"static/media/open.dfb0e418a545e25ac2ae148afddb1fd2.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react'\nimport {\n extractAnalyticsText,\n isInternalLink,\n sendClickHash,\n sendClickInternalOrExternal,\n sendSlideSwipe\n} from '../../helpers/analytics'\nimport Icon from './Icon'\nimport iconExternalLink from '../../images/icons/navigation/open.svg'\n\nfunction Button({\n children, // Whatever you want to put inside the button\n variant = 'default', // default, icon\n text = '', // Text to display on the button\n theme, // default, primary, secondary\n icon, // The icon to display\n iconSize, // The size of the icon\n iconClasses, // Any extra classes to add to the icon\n link, // The link to go to\n linkTarget, // The target of the link, _blank, _self etc\n size = 'md', // none, sm, md, lg\n classes = '', // Any extra classes to add\n ariaLabel, // The aria label\n onClick, // The click handler\n sendAnalytics = true, // Whether to send analytics or not\n currentScreen = '', // The current screen for analytics purposes\n tabIndex, // The tab index should we need to override it\n isSelected, // If the button is selected\n isDisabled, // If the button is disabled\n currentSlide // The current slide\n}) {\n let allClasses = ''\n\n const isIconOnly = variant === 'icon' && text === ''\n const isIconAndText = variant === 'icon' && text !== ''\n\n // #region Styles - ..\n\n // Size is common throughout all variants\n let sizeClasses = ''\n switch (size) {\n case 'none':\n sizeClasses += '' // No size classes\n break\n case 'sm':\n sizeClasses += 'py-1.5 px-6 text-sm'\n break\n case 'lg':\n sizeClasses += 'py-5 px-9 text-lg'\n break\n default:\n sizeClasses += 'py-4 px-5'\n break\n }\n\n // The defaults\n let baseClasses =\n ' clickable inline-flex justify-center items-center bg-background text-text font-shell-heavy border-2 rounded-lg border-border shadow-fl-btn transition ease-in-out duration-300 m-2 mt-4 gap-[22px] justify-between fill-current'\n // The hover\n baseClasses += ' hover:bg-hover-background hover:text-hover-text hover:border-grey700'\n // The focus\n baseClasses += ' focus:bg-hover-background focus:text-hover-text focus:border-grey700'\n\n switch (variant) {\n case 'icon':\n // ICON classes. Two possibilities here. Icon only or icon and text\n if (isIconOnly) {\n allClasses += 'p-3'\n } else if (isIconAndText) {\n allClasses += sizeClasses\n }\n break\n default:\n // Standard CTA\n allClasses += sizeClasses\n break\n }\n\n // Tag on the base classes\n allClasses += baseClasses\n\n if (isSelected) {\n allClasses += ' border border-grey'\n }\n if (isDisabled) {\n allClasses += ' pe-none text-grey200 cursor-not-allowed'\n tabIndex = -1\n }\n\n // Add any extras passed through\n allClasses += ' ' + classes\n\n // #endregion\n\n // #region Analytics and accessibility\n\n // Analytics needs a text value\n const analyticsText = extractAnalyticsText(children, text, ariaLabel, 'BUTTON')\n\n // For the link we need to check if it's got a target set or not\n if (link) {\n if (!linkTarget) {\n // No target specified. Check if it's external or not\n if (isInternalLink(link)) {\n // Internal link\n linkTarget = '_self'\n } else {\n // External link. Open in new tab\n linkTarget = '_blank'\n // Override the icon\n icon = iconExternalLink\n }\n }\n }\n\n // Use analytics text for aria label if none specified\n if (ariaLabel === '') {\n ariaLabel = analyticsText\n }\n\n if (linkTarget === '_blank') {\n // Update aria label\n ariaLabel += ' - opens in new window'\n }\n\n // Model for the icon atom\n const iconModel = {\n icon,\n size: iconSize,\n classes: iconClasses\n }\n\n // #endregion\n\n if (!children) {\n children = text\n }\n\n // Button will fire this when clicked and then pass it up the chain if needed.\n const handleClick = (event, props) => {\n if (sendAnalytics) {\n if (currentSlide) {\n let direction = analyticsText === 'Next slide' ? 'Next' : 'Previous'\n sendSlideSwipe(direction, currentSlide, currentScreen)\n } else if (link) {\n sendClickInternalOrExternal(analyticsText, link, currentScreen)\n } else {\n sendClickHash(analyticsText, '', currentScreen)\n }\n }\n\n if (onClick) {\n onClick(props)\n }\n }\n\n if (link) {\n return (\n <a\n tabIndex={tabIndex}\n href={link}\n target={linkTarget}\n data-theme={theme}\n className={allClasses}\n aria-label={ariaLabel}\n onClick={(event) => handleClick(event)}\n >\n {children}\n {icon && <Icon model={iconModel} />}\n </a>\n )\n }\n\n return (\n <button\n tabIndex={tabIndex}\n type='button'\n data-theme={theme}\n className={allClasses}\n aria-label={ariaLabel}\n onClick={(event) => handleClick(event)}\n >\n {children}\n {icon && <Icon model={iconModel} />}\n </button>\n )\n}\n\nexport default Button\n","// @ts-check\n/// <reference types=\"./index\" />\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport React, {\n memo, useRef, useEffect, useState, forwardRef, useCallback,\n} from 'react';\nimport equal from 'fast-deep-equal/es6/react';\n// @ts-expect-error todo\nimport clone from 'rfdc/default';\n\nconst emptyObject = {};\nconst noOp = () => undefined;\n\n/**\n * @param {import('lottie-web').LottiePlayer} args\n * @returns {React.FC<import('react-lottie-player').LottieProps>}\n */\nconst makeLottiePlayer = ({ loadAnimation }) => {\n const Lottie = memo(forwardRef((\n /** @type {import('react-lottie-player').LottieProps} */\n params,\n /** @type {React.ForwardedRef<import('lottie-web').AnimationItem | undefined>} */\n forwardedRef,\n ) => {\n const {\n play = null,\n speed = 1,\n direction = 1,\n segments: segmentsIn = null,\n goTo = null,\n useSubframes = true,\n\n // props picked to match from Lottie's config\n renderer = 'svg',\n loop = true,\n rendererSettings: rendererSettingsIn = emptyObject,\n audioFactory,\n\n onLoad = noOp,\n onComplete = noOp,\n onLoopComplete = noOp,\n onEnterFrame = noOp,\n onSegmentStart = noOp,\n\n // htmlProps remain and will pass on to the div element\n ...props\n } = params;\n\n /** @type {import('react-lottie-player').LottieProps} */\n let propsFiltered = props;\n /** @type {object | undefined} */\n let animationData;\n /** @type {string | undefined} */\n let path;\n\n if ('animationData' in props) {\n ({ animationData, ...propsFiltered } = props);\n }\n if ('path' in props) {\n ({ path, ...propsFiltered } = props);\n }\n\n /** @type {React.MutableRefObject<HTMLDivElement | null>} */\n const animElementRef = useRef(null);\n /** @type {React.MutableRefObject<import('lottie-web').AnimationItem | undefined>} */\n const animRef = useRef();\n\n const getAnim = useCallback(() => {\n if (animRef.current == null) throw new Error('Lottie ref is not set');\n return animRef.current;\n }, []);\n\n const [ready, setReady] = useState(false);\n\n const [segments, setSegments] = useState(segmentsIn);\n\n // Prevent re-init\n useEffect(() => {\n if (!equal(segments, segmentsIn)) setSegments(segmentsIn);\n }, [segmentsIn, segments]);\n\n const [rendererSettings, setRendererSettings] = useState(rendererSettingsIn);\n\n // Prevent re-init\n useEffect(() => {\n if (!equal(rendererSettings, rendererSettingsIn)) setRendererSettings(rendererSettingsIn);\n }, [rendererSettingsIn, rendererSettings]);\n\n // In order to remove listeners before animRef gets destroyed:\n useEffect(() => () => getAnim().removeEventListener('complete', onComplete), [getAnim, onComplete]);\n useEffect(() => () => getAnim().removeEventListener('loopComplete', onLoopComplete), [getAnim, onLoopComplete]);\n useEffect(() => () => getAnim().removeEventListener('enterFrame', onEnterFrame), [getAnim, onEnterFrame]);\n useEffect(() => () => getAnim().removeEventListener('segmentStart', onSegmentStart), [getAnim, onSegmentStart]);\n useEffect(() => () => getAnim().removeEventListener('DOMLoaded', onLoad), [getAnim, onLoad]);\n\n const setLottieRefs = useCallback((/** @type {import('lottie-web').AnimationItem | undefined} */ newRef) => {\n animRef.current = newRef;\n if (typeof forwardedRef === 'function') {\n forwardedRef(newRef);\n } else if (forwardedRef !== undefined && forwardedRef !== null) {\n // eslint-disable-next-line no-param-reassign -- mutating a ref is intended\n forwardedRef.current = newRef;\n }\n }, [forwardedRef]);\n\n useEffect(() => {\n function parseAnimationData() {\n if (animationData == null || typeof animationData !== 'object') return animationData;\n\n // https://github.com/mifi/react-lottie-player/issues/11#issuecomment-879310039\n // https://github.com/chenqingspring/vue-lottie/issues/20\n if ('default' in animationData && typeof animationData.default === 'object') {\n return clone(animationData.default);\n }\n // cloneDeep to prevent memory leak. See #35\n return clone(animationData);\n }\n\n if (animElementRef.current == null) throw new Error('animElementRef is not set');\n\n // console.log('init')\n const lottie = loadAnimation({\n animationData: parseAnimationData(),\n path,\n container: animElementRef.current,\n renderer,\n loop: false,\n autoplay: false, // We want to explicitly control playback\n rendererSettings,\n ...(audioFactory ? { audioFactory } : {}),\n });\n setLottieRefs(lottie);\n\n const onDomLoaded = () => setReady(true);\n\n getAnim().addEventListener('DOMLoaded', onDomLoaded);\n\n return () => {\n getAnim().removeEventListener('DOMLoaded', onDomLoaded);\n setReady(false);\n getAnim().destroy();\n setLottieRefs(undefined);\n };\n }, [loop, renderer, rendererSettings, animationData, path, audioFactory, setLottieRefs, getAnim]);\n\n useEffect(() => {\n getAnim().addEventListener('DOMLoaded', onLoad);\n }, [getAnim, onLoad]);\n\n useEffect(() => {\n getAnim().addEventListener('complete', onComplete);\n }, [getAnim, onComplete]);\n\n useEffect(() => {\n getAnim().addEventListener('loopComplete', onLoopComplete);\n }, [getAnim, onLoopComplete]);\n\n useEffect(() => {\n getAnim().addEventListener('enterFrame', onEnterFrame);\n }, [getAnim, onEnterFrame]);\n\n useEffect(() => {\n getAnim().addEventListener('segmentStart', onSegmentStart);\n }, [getAnim, onSegmentStart]);\n\n useEffect(() => {\n if (!ready) return;\n getAnim().loop = loop;\n }, [ready, loop, getAnim]);\n\n const wasPlayingSegmentsRef = useRef(false);\n\n useEffect(() => {\n if (!ready) return;\n\n // Without this code, when playback restarts, it will not play in reverse:\n // https://github.com/mifi/react-lottie-player/issues/19\n function playReverse(/** @type {number} */ lastFrame) {\n getAnim().goToAndPlay(lastFrame, true);\n getAnim().setDirection(direction);\n }\n\n if (play === true) {\n const force = true;\n if (segments) {\n getAnim().playSegments(segments, force);\n wasPlayingSegmentsRef.current = true;\n\n // This needs to be called after playSegments or it will not play backwards\n if (direction === -1) {\n // TODO What if more than one segment\n const lastFrame = typeof segments[1] === 'number' ? segments[1] : segments[1][1];\n playReverse(lastFrame);\n }\n } else {\n // If we called playSegments last time, the segments are stored as a state in the lottie object\n // Need to reset segments or else it will still play the old segments also when calling play()\n // wasPlayingSegmentsRef: Only reset segments if playSegments last time, because resetSegments will also reset playback position\n // https://github.com/airbnb/lottie-web/blob/master/index.d.ts\n if (wasPlayingSegmentsRef.current) getAnim().resetSegments(force);\n wasPlayingSegmentsRef.current = false;\n\n if (direction === -1) {\n const lastFrame = getAnim().getDuration(true);\n playReverse(lastFrame);\n } else {\n getAnim().play();\n }\n }\n } else if (play === false) {\n getAnim().pause();\n }\n }, [play, segments, ready, direction, getAnim]);\n\n useEffect(() => {\n if (!ready) return;\n if (Number.isNaN(speed)) return;\n getAnim().setSpeed(speed);\n }, [speed, ready, getAnim]);\n\n // This handles the case where only direction has changed (direction is not a dependency of the other effect that calls setDirection)\n useEffect(() => {\n if (!ready) return;\n getAnim().setDirection(direction);\n }, [direction, getAnim, ready]);\n\n useEffect(() => {\n if (!ready) return;\n if (goTo == null) return;\n const isFrame = true; // TODO\n if (play) getAnim().goToAndPlay(goTo, isFrame);\n else getAnim().goToAndStop(goTo, isFrame);\n }, [getAnim, goTo, play, ready]);\n\n useEffect(() => {\n if (getAnim().setSubframe) getAnim().setSubframe(useSubframes);\n // console.log(getAnim().isSubframeEnabled)\n }, [getAnim, useSubframes]);\n\n return (\n // eslint-disable-next-line react/jsx-filename-extension\n <div\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...propsFiltered}\n ref={animElementRef}\n />\n );\n }));\n\n return Lottie;\n};\n\nexport default makeLottiePlayer;\n","import lottie from 'lottie-web';\nimport makeLottiePlayer from './makeLottiePlayer';\n\nexport default makeLottiePlayer(lottie);\n","import React from 'react'\n\nfunction Heading ({ children, text, level = '3', theme }) {\n let content = text\n if (children) {\n content = children\n }\n\n return (\n <>\n {level && level === '1' && (\n <h1 data-theme={theme} className='text-4xl text-border font-shell-heavy my-3'>\n {content}\n </h1>\n )}\n {level && level === '2' && (\n <h2 data-theme={theme} className='text-5xl text-border font-shell-heavy mb-3'>\n {content}\n </h2>\n )}\n {level && level === '3' && (\n <h3 data-theme={theme} className='text-2xl text-border font-shell-heavy my-3'>\n {content}\n </h3>\n )}\n {level && level === '4' && (\n <h4 data-theme={theme} className='text-xl text-border font-shell-heavy my-3'>\n {content}\n </h4>\n )}\n {level && level === '5' && (\n <h5 data-theme={theme} className='text-lg text-border font-shell-heavy my-3'>\n {content}\n </h5>\n )}\n {level && level === '6' && (\n <h6 data-theme={theme} className='text-base text-border font-shell-heavy my-3'>\n {content}\n </h6>\n )}\n </>\n )\n}\n\nexport default Heading\n","import Lottie from 'react-lottie-player'\n//import Lottie from 'react-lottie'\n//import Lottie from 'lottie-react'\nimport Heading from '../core/components/atoms/Heading'\n\nfunction Slide({ children, title, image, lottieSettings, lottieRef }) {\n // Default settings\n const lottieOptions = {\n loop: lottieSettings.loop || false,\n autoplay: lottieSettings.autoplay || false,\n animationData: lottieSettings.animationData,\n isClickToPauseDisabled: true,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice'\n }\n }\n // Rounded with a shadow\n return (\n <div className='slide rounded-xl py-10'>\n {/* {children} */}\n <div className='grid grid-cols-1 md:grid-cols-2 gap-10 lg:gap-24 px-8 lg:px-20'>\n <div className='col-text font-shell-heavy content-center'>\n {title && (\n <Heading theme='secondary' level='2'>\n {title}\n </Heading>\n )}\n {children}\n </div>\n <div className='col-image'>\n {/* react-lottie */}\n {/* <Lottie options={lottieOptions} height={'auto'} width={'100%'} ref={lottieRef} tabIndex='-1' /> */}\n {/* React lottie player */}\n <Lottie\n loop={lottieSettings.loop || false}\n play={lottieSettings.autoplay || false}\n animationData={lottieSettings.animationData}\n ref={lottieRef}\n />\n </div>\n </div>\n </div>\n )\n}\n\nexport default Slide\n","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgHome(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"inherit\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"m14.252 3.87-.39-.31a3 3 0 0 0-3.724.001l-.392.306L2.194 9.85a.5.5 0 0 0-.09.692l.626.833a.5.5 0 0 0 .712.09L4 11.02v7.068a3 3 0 0 0 3 3H17.001a3 3 0 0 0 3-3v-7.068l.557.446a.5.5 0 0 0 .712-.09l.625-.834a.5.5 0 0 0-.089-.692L18 6.835V4.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v.75l-1.746-1.383-.002.003ZM6 9.87v8.216a1 1 0 0 0 1 1h3V14.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v4.587h3a1 1 0 0 0 1-1V9.87a1 1 0 0 0-.22-.625l-5.159-4.117a1 1 0 0 0-1.241 0L6.222 9.244A1 1 0 0 0 6 9.87Z\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgHome);\nexport default __webpack_public_path__ + \"static/media/home.4a65c5544113ea0c276324163eb86015.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgArrowRight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"inherit\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 12.5a.5.5 0 0 0 .5.5h11.67l-5.235 5.235a.5.5 0 0 0 .001.709l.71.705a.5.5 0 0 0 .706-.001l7.294-7.294a.5.5 0 0 0 0-.707l-7.292-7.293a.5.5 0 0 0-.708 0l-.703.703a.5.5 0 0 0 0 .707L16.17 11H4.5a.5.5 0 0 0-.5.5v1Z\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowRight);\nexport default __webpack_public_path__ + \"static/media/arrow-right.5e1a4b47bd04ca4868de8576ae3059ff.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgArrowLeft(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"inherit\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 11.5a.5.5 0 0 0-.5-.5H7.83l5.235-5.235a.5.5 0 0 0-.001-.709l-.71-.705a.5.5 0 0 0-.706.001l-7.294 7.294a.5.5 0 0 0 0 .707l7.292 7.293a.5.5 0 0 0 .708 0l.703-.703a.5.5 0 0 0 0-.707L7.83 13H19.5a.5.5 0 0 0 .5-.5v-1Z\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowLeft);\nexport default __webpack_public_path__ + \"static/media/arrow-left.836c60280e82b03cdde974fe40855401.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useRef, useState } from 'react'\nimport '../core/scss/base.scss' // Imports fonts and icons\nimport '../index.css' // Tailwind gubbins\nimport Slider from 'react-slick'\nimport Button from '../core/components/atoms/Button'\nimport Slide from '../components/Slide'\nimport iconHome from '../images/home.svg'\nimport iconArrowRight from '../images/arrow-right.svg'\nimport iconArrowLeft from '../images/arrow-left.svg'\nimport Heading from '../core/components/atoms/Heading'\nimport imageIntro from '../images/intro-placeholder.jpg'\nimport imageCapture from '../images/placeholder1.jpg'\nimport imageTransport from '../images/placeholder1.jpg'\nimport imageStorage from '../images/placeholder1.jpg'\nimport imageMonitor from '../images/placeholder1.jpg'\nimport animationIntro from '../animations/homescreen-animation.json'\nimport animationCapture from '../animations/capture-animation.json'\nimport animationTransport from '../animations/transport-animation.json'\nimport animationStorage from '../animations/storage-animation.json'\nimport animationMonitor from '../animations/monitoring-animation.json'\n\nfunction HowDoesCCSWork() {\n const [currentIndex, setCurrentIndex] = useState(0)\n const allSlides = [\n {\n title: '',\n icon: iconHome,\n image: imageIntro,\n lottieSettings: {\n autoplay: true,\n animationData: animationIntro\n },\n content: (\n <div>\n <p className='text-lg lg:text-xl text-text mb-4'>\n Carbon capture and storage (CCS) is a combination of technologies that capture, transport and store carbon\n dioxide (CO<sub>2</sub>) deep underground, preventing its release into the atmosphere.\n </p>\n <p className='text-md lg:text-lg text-text mb-4 font-shell-medium font-medium'>\n CCS is one of the solutions that can be used to reduce emissions from sectors that are slower-to-decarbonise\n such as the production of steel, cement, or chemicals or to help decarbonise power stations that use fuels\n like oil and gas. These are all areas where there are few scalable, low-carbon alternatives available today.\n </p>\n <p className='text-md lg:text-lg text-text mb-4 font-shell-medium font-medium'>\n CCS can also help enable the creation of low carbon energy products such as biofuels and hydrogen, and lower\n carbon intensity hydrocarbons like liquefied natural gas (LNG).\n </p>\n <Button\n text='Explore the process'\n icon={iconArrowRight}\n tabIndex={currentIndex == 0 ? 0 : -1}\n onClick={() => jumpToSlide(1)}\n />\n </div>\n )\n },\n {\n title: 'Capture',\n image: imageCapture,\n lottieSettings: {\n animationData: animationCapture\n },\n content: (\n <div>\n <p className='text-text text-lg lg:mb-8 font-shell-medium font-medium'>\n The CO<sub>2</sub> being released needs to be captured for storage. Once captured, the CO<sub>2</sub> is\n separated from other gases, usually using a chemical solvent. The captured CO<sub>2</sub> is then separated\n from the solvent, compressed, and made ready for transport.\n </p>\n </div>\n )\n },\n {\n title: 'Transport',\n image: imageTransport,\n lottieSettings: {\n animationData: animationTransport\n },\n content: (\n <div>\n <p className='text-text text-lg lg:mb-8 font-shell-medium font-medium'>\n Transport can happen in several ways. The captured CO<sub>2</sub> is generally pumped through a pipeline to\n a storage site, which may be onshore or offshore. The CO<sub>2</sub> can also be moved by ship, rail or\n truck.\n </p>\n </div>\n )\n },\n {\n title: 'Storage',\n image: imageStorage,\n lottieSettings: {\n animationData: animationStorage\n },\n content: (\n <div>\n <p className='text-text text-lg lg:mb-8 font-shell-medium font-medium'>\n Once the CO<sub>2</sub> arrives at the storage site, it is injected deep underground into the microscopic\n spaces in porous rocks. Impermeable rock, which is called cap rock and sits above the porous rock, forms a\n seal that ensures the CO<sub>2</sub> remains deep underground.\n </p>\n </div>\n )\n },\n {\n title: 'Monitor',\n image: imageMonitor,\n lottieSettings: {\n animationData: animationMonitor\n },\n content: (\n <div>\n <p className='text-text text-lg lg:mb-8 font-shell-medium font-medium'>\n To make sure that the CO<sub>2</sub> remains permanently underground, regular monitoring takes place above\n and below ground to confirm the CO<sub>2</sub> is safely stored.\n </p>\n </div>\n )\n }\n ]\n\n const [slides, setSlides] = useState(allSlides)\n\n let sliderRef = useRef(null)\n let lottieRefs = useRef([])\n\n const slickSettings = {\n arrows: false,\n accessibility: false,\n dots: false,\n fade: false,\n infinite: false,\n speed: 500,\n slidesToShow: 1,\n slidesToScroll: 1,\n waitForAnimate: false,\n draggable: false\n }\n\n const nextSlide = () => {\n if (currentIndex < slides.length - 1) {\n const newIndex = currentIndex + 1\n setCurrentIndex(newIndex)\n }\n }\n\n const previousSlide = () => {\n if (currentIndex > 0) {\n const newIndex = currentIndex - 1\n setCurrentIndex(newIndex)\n }\n }\n\n const jumpToSlide = (index) => {\n setCurrentIndex(index)\n }\n\n useEffect(() => {\n // Check it's a number\n if (typeof currentIndex === 'number') {\n sliderRef.slickGoTo(currentIndex)\n }\n }, [currentIndex])\n\n return (\n <div className='asset py-8 px-4 lg:px-0 lg:py-14 mx-auto' data-theme='primary'>\n <h2 className='text-center text-4xl text-text font-shell-heavy'>How does CCS work?</h2>\n <div className=' bg-white shadow-lg mt-14 lg:mt-16 rounded-lg relative pt-8 lg:pt-14'>\n <nav className='absolute -top-10 w-full'>\n <div className='flex space-around w-full px-4'>\n {/* Home button on desktop */}\n <Button\n key={'home'}\n variant='icon'\n ariaLabel='Home'\n classes='px-4'\n icon={iconHome}\n isSelected={currentIndex == 0}\n // classes={`${currentIndex == 0 ? '' : 'hidden md:inline-flex'}`}\n onClick={() => jumpToSlide(0)}\n />\n <Button\n variant='icon'\n classes='ml-auto lg:ml-10 px-4'\n ariaLabel='Previous slide'\n icon={iconArrowLeft}\n isDisabled={currentIndex == 0}\n onClick={previousSlide}\n theme='secondaryreversed'\n currentSlide={allSlides[currentIndex].title}\n />\n {allSlides.map((slide, index) => {\n if (slide.icon) {\n // return (\n // // Home button on mobile\n // <Button\n // key={index}\n // text='Introduction'\n // isSelected={index == currentIndex}\n // classes={`md:hidden ${index == currentIndex ? 'inline-flex' : 'hidden'}`}\n // onClick={() => jumpToSlide(index)}\n // />\n // )\n } else {\n return (\n // Other buttons\n <Button\n key={index}\n text={slide.title}\n isSelected={index === currentIndex}\n //classes={`${index == currentIndex ? '' : 'hidden md:inline-flex flex-grow items-center'}`}\n classes='hidden md:flex flex-grow justify-around'\n onClick={() => jumpToSlide(index)}\n />\n )\n }\n })}\n <Button\n variant='icon'\n classes='px-4 lg:mr-28'\n icon={iconArrowRight}\n ariaLabel='Next slide'\n isDisabled={currentIndex == slides.length - 1}\n onClick={nextSlide}\n theme='secondaryreversed'\n currentSlide={allSlides[currentIndex].title == '' ? 'Introduction' : allSlides[currentIndex].title}\n />\n </div>\n </nav>\n <Slider\n ref={(slider) => {\n sliderRef = slider\n }}\n beforeChange={(oldIndex, newIndex) => {\n //Stop the animation before we slide, hide it essentially\n if (oldIndex !== newIndex) {\n lottieRefs.current[newIndex].stop()\n }\n setCurrentIndex(newIndex)\n }}\n afterChange={(index) => {\n //Play the animation once the slide is in view\n lottieRefs.current[index].play()\n }}\n {...slickSettings}\n >\n {/* loop through allSlides */}\n {allSlides.map((slide, index) => {\n return (\n <div key={index}>\n <Slide\n title={slide.title}\n image={slide.image}\n lottieSettings={slide.lottieSettings}\n lottieRef={(el) => (lottieRefs.current[index] = el)}\n >\n {slide.content}\n </Slide>\n </div>\n )\n })}\n </Slider>\n </div>\n </div>\n )\n}\n\nexport default HowDoesCCSWork\n","import HowDoesCCSWork from './web-component/HowDoesCCSWork'\n\nfunction App () {\n return (\n <div className='bg-grey50'>\n <div className='asset mx-auto max-w-[1300px]'>\n <HowDoesCCSWork />\n </div>\n </div>\n )\n}\n\nexport default App\n","const reportWebVitals = (onPerfEntry) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry)\n getFID(onPerfEntry)\n getFCP(onPerfEntry)\n getLCP(onPerfEntry)\n getTTFB(onPerfEntry)\n })\n }\n}\n\nexport default reportWebVitals\n","import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport './index.css'\nimport App from './App'\nimport reportWebVitals from './reportWebVitals'\nimport { environment } from './core/helpers/environment'\n\nif (environment.isProd) {\n // Include your iframe script here if production\n const script = document.createElement('script')\n script.src = '//s00.static-shell.com/apps/shell-common/components/components/iframe/clientlib/external.min.js'\n document.head.appendChild(script)\n}\n\nconst root = ReactDOM.createRoot(document.getElementById('root'))\nroot.render(<App />)\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals()\n"],"names":["PARAM_REGEXP","TEXT_REGEXP","TOKEN_REGEXP","QESC_REGEXP","QUOTE_REGEXP","TYPE_REGEXP","qstring","val","str","String","test","length","TypeError","replace","ContentType","type","this","parameters","Object","create","exports","string","header","obj","getHeader","headers","getcontenttype","index","indexOf","slice","trim","toLowerCase","key","match","value","lastIndex","exec","charCodeAt","QueryHandler","require","each","MediaQuery","query","isUnconditional","handlers","mql","window","matchMedia","self","listener","currentTarget","assess","addListener","prototype","constuctor","addHandler","handler","qh","push","matches","on","removeHandler","h","i","equals","destroy","splice","clear","removeListener","action","module","Util","isFunction","isArray","MediaQueryDispatch","Error","queries","browserIsIncapable","constructor","register","q","options","shouldDegrade","unregister","deferSetup","setup","initialised","off","unmatch","target","toString","apply","collection","fn","_createForOfIteratorHelper","equal","a","b","keys","Array","Map","size","_step","_iterator","entries","s","n","done","has","err","e","f","_step2","_iterator2","get","Set","_step3","_iterator3","ArrayBuffer","isView","RegExp","source","flags","valueOf","hasOwnProperty","call","$$typeof","camel2hyphen","obj2mq","mq","features","forEach","feature","isDimension","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","root","Function","objectToString","nativeMax","Math","max","nativeMin","min","now","Date","isObject","toNumber","isObjectLike","isSymbol","other","isBinary","func","wait","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","undefined","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","remainingWait","debounced","isInvoking","arguments","leadingEdge","cancel","clearTimeout","flush","factory","navigator","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","document","createElement","extendPrototype","sources","destination","sourcePrototype","len","attr","getDescriptor","object","prop","getOwnPropertyDescriptor","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","pause","resume","setRate","rateValue","createAudio","assetPath","Howl","src","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","arr","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","Symbol","iterator","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","userAgent","_shouldRoundValues","bmPow","pow","bmSqrt","sqrt","bmFloor","floor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","random","abs","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","round","styleDiv","element","style","position","top","left","display","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","v","r","g","p","t","RGBtoHSV","d","addSaturationToRGB","color","offset","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","path","data","_workerSelf","setupWorker","Worker","Blob","blob","url","URL","createObjectURL","createWorker","completeLayers","layers","comps","layerData","j","jLen","k","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","id","comp","findComp","__used","JSON","parse","stringify","ks","it","o","checkVersion","minimum","animVersionString","animVersion","split","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","animationData","assets","checkChars","chars","charData","ip","op","st","sr","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","c","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","response","responseText","load","fullPath","callback","errorCallback","XMLHttpRequest","onreadystatechange","readyState","status","open","join","error","send","completeData","payload","animation","event","process","onComplete","onError","createProcess","loadAnimation","processId","location","origin","pathname","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","width","height","ctx","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","u","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","bind","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","addEventListener","createImageData","setAttributeNS","_elementHelper","append","appendChild","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","_cbs","callbacks","removeEventListener","markerParser","parsePayloadLines","line","lines","keysCount","_markers","markers","_marker","markerData","tm","duration","dr","cm","_","__","name","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","getRegisteredRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","autoplay","loop","renderer","animationID","timeCompleted","segmentPos","isSubframeEnabled","segments","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","params","wrapper","container","animType","RendererClass","rendererSettings","globalData","defs","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","lastIndexOf","substr","fileName","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","shift","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","resize","_width","_height","updateContainerSize","setSubframe","renderFrame","resetFrame","triggerRenderFrameError","togglePause","stop","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","Number","isNaN","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","init","end","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","setLoop","isLooping","getPath","getAssetData","hide","show","getDuration","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","concat","getElementsByClassName","lenAnims","setAttribute","body","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","x","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","point","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","to","ti","ind","__fnct","getBezierEasing","y","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quaternionToEuler","slerp","createQuaternion","omega","cosom","sinom","scale0","scale1","out","ax","ay","az","aw","bx","by","bz","bw","acos","sin","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","values","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","pos","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","reset","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","props","rotate","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","l","m","translate","tx","tz","transform","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","multiply","matrix","matrixProps","isIdentity","_identity","matr","cloneFromProps","applyToPoint","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","href","setSubframeRendering","setPrefix","prefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","useWebWorker","setIDPrefix","__getFactory","version","scripts","myScript","define","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","pop","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","delta","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","t2","box","boundingBox","cx","cy","splitData","boxIntersect","intersectsImpl","depth","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","prevIndex","nextIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","tangentAngle","angleIn","center","radius","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","right","mid","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","styles","fStyle","fWeight","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","hasReloaded","copies","ceil","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","distance","newPosPerc","derivative","denom","tcusp","square","filter","p10","p11","p20","p21","bounds","bottom","shapeSegmentInverted","pointsType","count","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","w","combinedCharacters","BLACK_FLAG_CODE_POINT","REGIONAL_CHARACTER_A_CODE_POINT","REGIONAL_CHARACTER_Z_CODE_POINT","surrogateModifiers","setUpNode","font","family","parentNode","fontFamily","node","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","def","helper","engine","fontProps","tHelper","fFamily","textContent","fClass","tCanvasHelper","OffscreenCanvas","measureText","text","getComputedTextLength","getCodePoint","codePoint","second","isRegionalCode","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","charCode","isFlagEmoji","isCombinedCharacter","_char3","isRegionalFlag","isVariationSelector","fontPrototype","found","ch","list","cache","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","rel","sc","getCharData","_char","console","warn","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","removeChild","SlotManager","slotFactory","RenderableElement","slots","assign","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","component","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","mode","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","ef","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","content","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","layerId","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","getElementById","pathValue","setupGlobalData","fontsContainer","animationItem","compSize","effectTypes","TRANSFORM_EFFECT","TransformElement","MaskElement","maskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","mask","createLayerSolidPath","invRect","drawPath","maskedElement","initTransform","_matMdf","_localMatMdf","_opMdf","localMat","localOpacity","ao","renderTransform","finalMat","renderLocalTransform","localTransforms","lmat","localOp","opacity","searchEffectTransforms","renderableEffectsManager","transformEffects","getEffects","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects$1","idPrefix","SVGEffects","filterManager","createFilter","filters","Effect","effect","countsAsEffect","registerEffect$1","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","td","matteMasks","gg","tt","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","getMatte","matteType","useElement","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","of","ms","ost","buildShapeString","_o","_i","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","render","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charactersArray","shouldCombine","shouldCombineNext","currentChars","charAt","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","add","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","validateText","buildNewText","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","config","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","className","focusable","filterSize","runExpressions","destroyed","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","fromCharCode","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","insertBefore","setElements","getElements","destroyElements","addTransformSequence","sequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","svg","loadLuma","_svg","createLumaSvgFilter","createCanvas","loadLumaCanvas","getLumaCanvas","registeredEffects","CVEffects","registerEffect","CVMaskElement","hasMasks","CVBaseElement","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","stroke","fill","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","CanvasContext","strokeStyle","lineCap","CVContextData","stack","cArrPos","cTr","nativeContext","transformMat","currentOpacity","currentFillStyle","appliedFillStyle","currentStrokeStyle","appliedStrokeStyle","currentLineWidth","appliedLineWidth","currentLineCap","appliedLineCap","currentLineJoin","appliedLineJoin","appliedMiterLimit","currentMiterLimit","CVCompElement","CanvasRenderer","clearCanvas","context","dpr","devicePixelRatio","currentGlobalAlpha","contextData","ctxTransform","ctxOpacity","ctxFillStyle","ctxStrokeStyle","ctxLineWidth","ctxLineCap","ctxLineJoin","ctxMiterLimit","ctxFill","ctxFillRect","ctxStroke","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","globalCompositeOperation","hideElement","showElement","clearRect","prepareLayer","bufferCtx","drawImage","getTransform","exitLayer","buffer","forceRealStack","restore","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","grd","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","globalAlpha","rule","actionFlag","containerStyle","mozTransformOrigin","setContext","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","duplicate","newLength","forceRestore","currentContext","prevStack","saveOnNativeFlag","currentStack","newStack","setOpacity","trProps","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","strokeWidth","lineHeight","tParent","tCont","children","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","defineProperty","pixelAspect","frameDuration","displayStartTime","numLayers","_typeof$2","seedRandom","nodecrypto","rngname","startdenom","significance","ARC4","keylen","me","S","copy","flatten","typ","mixkey","seed","smear","stringseed","tostring","shortseed","entropy","randomBytes","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","state","initialize$2","propTypes","SHAPE","_typeof$1","ExpressionManager","fetch","frames","_lottieGlobal","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","property","noOp","_value","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","valueAtTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","active","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","substring","posterizeTime","framesPerSecond","hasParent","executeExpression","frameExpressionId","__preventDeadCodeRemoval","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_data","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","getSpeedAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","transformInterface","anchorPointDescriptor","defineProperties","anchor_point","startTime","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","createGroupInterface","groupInterface","mn","_propertyGroup","createValueInterface","numProperties","np","enabled","en","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","view","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","start","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","_sourceText","sourceText","stringValue","fillColor","_typeof","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","expressionHelpers","searchExpressions","speed","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","current","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","childNodes","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","TransformEffect","SVGTransformEffect","CVTransformEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","sigma","dimensions","sigmaX","sigmaY","edgeMode","forceFrame","isUniformScale","scaleHeight","scaleWidth","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","number","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","aa","ca","encodeURIComponent","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","toUpperCase","ta","pa","qa","oa","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","set","Reflect","construct","displayName","includes","Pa","tag","Qa","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","configurable","enumerable","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","db","ownerDocument","eb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","namespaceURI","innerHTML","firstChild","MSApp","execUnsafeLocalFunction","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","qb","rb","sb","setProperty","tb","menuitem","area","base","br","embed","hr","input","keygen","link","meta","param","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","oc","clz32","pc","qc","log","LN2","rc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","pd","qd","_reactName","_targetInst","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ud","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","date","datetime","email","month","password","range","search","tel","week","oe","listeners","qe","re","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","$e","af","bf","cf","df","ff","hf","lf","mf","nf","Ub","instance","D","pf","qf","rf","sf","capture","passive","J","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Promise","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","next","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","bh","eventTime","lane","dh","K","eh","gh","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","updater","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","ref","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","tagName","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","P","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","gi","hi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","qi","ri","deps","si","ui","vi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","message","digest","Li","Mi","Ni","WeakMap","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","autoFocus","createTextNode","T","Hj","Ij","Jj","Kj","U","Lj","WeakSet","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","ok","pk","Y","Z","qk","rk","tk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","pendingSuspenseBoundaries","el","fl","gl","hl","il","jl","zj","$k","ll","reportError","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","dl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","PrevArrow","NextArrow","_react","_interopRequireDefault","_classnames","_innerSliderUtils","__esModule","_extends","ownKeys","getOwnPropertySymbols","_objectSpread","_defineProperty","getOwnPropertyDescriptors","_toPropertyKey","writable","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","toPrimitive","_toPrimitive","_inherits","subClass","superClass","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","Boolean","getPrototypeOf","_React$PureComponent","_super","clickHandler","prevClasses","prevHandler","infinite","currentSlide","slideCount","slidesToShow","prevArrowProps","customProps","prevArrow","cloneElement","PureComponent","_React$PureComponent2","_super2","nextClasses","nextHandler","canGoNext","nextArrowProps","nextArrow","accessibility","adaptiveHeight","afterChange","appendDots","dots","arrows","autoplaySpeed","beforeChange","centerMode","centerPadding","cssEase","customPaging","dotsClass","draggable","easing","edgeFriction","fade","focusOnSelect","initialSlide","lazyLoad","onEdge","onInit","onLazyLoadError","onReInit","pauseOnDotsHover","pauseOnFocus","pauseOnHover","responsive","rows","rtl","slide","slidesPerRow","slidesToScroll","swipe","swipeEvent","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","vertical","waitForAnimate","asNavFor","Dots","spec","_this$props","onMouseEnter","onMouseOver","onMouseLeave","dotCount","mouseEvents","_rightBound","rightBound","_leftBound","leftBound","dotOptions","_slider","animating","autoplaying","currentDirection","currentLeft","dragging","edgeDragged","lazyLoadedList","listHeight","listWidth","scrolling","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","trackStyle","trackWidth","targetSlide","InnerSlider","_initialState","_lodash","_track","_dots","_arrows","_resizeObserverPolyfill","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_React$Component","_this","querySelector","getHeight","slidesToLoad","getOnDemandLazySlides","setState","prevState","onLazyLoad","listRef","trackRef","updateState","adaptHeight","autoPlay","lazyLoadTimer","progressiveLazyLoad","ro","onWindowResized","callbackTimers","observe","onfocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","timer","autoplayTimer","disconnect","prevProps","checkImagesLoad","setTrackStyle","didPropsChange","Children","changeSlide","debouncedResize","resizeWindow","updatedState","initializedState","slideIndex","targetLeft","getTrackLeft","getTrackCSS","_trackWidth","_trackLeft","childrenWidths","preClones","getPreClones","postClones","getPostClones","_i2","_trackStyle","currentWidth","childrenCount","trackLeft","imagesCount","image","prevClickHandler","onload","onerror","_index","dontAnimate","_slideHandler","slideHandler","nextState","asNavForIndex","innerSlider","firstBatch","clickable","keyHandler","ontouchmove","verticalSwiping","disableBodyScroll","swipeStart","swipeMove","swipeEnd","triggerSlideHandler","enableBodyScroll","playType","pauseType","trackProps","extractObject","onTrackOver","onTrackLeave","selectHandler","dotProps","onDotsLeave","onDotsOver","arrowProps","verticalHeightStyle","centerPaddingStyle","padding","listStyle","listProps","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","touchEnd","onTouchCancel","onKeyDown","innerSliderProps","unslick","listRefHandler","Track","trackRefHandler","ssrState","ssrInit","_i3","_Object$keys","_innerSlider","_json2mq","_defaultProps","enquire","canUseDOM","Slider","slickPrev","slickNext","slickGoTo","breakpoint","_responsiveMediaHandlers","_this2","breakpoints","map","breakpt","sort","bQuery","minWidth","maxWidth","media","settings","newProps","_this3","resp","toArray","newChildren","newSlide","row","tabIndex","innerSliderRefHandler","filterSettings","getSlideClasses","slickActive","slickCenter","slickCloned","centerOffset","getKey","fallbackKey","renderSlides","slides","preCloneSlides","postCloneSlides","startIndex","lazyStartIndex","lazyEndIndex","childOnClickOptions","childStyle","getSlideStyle","slideClass","slideClasses","outline","preCloneNo","_len","_key","handleRef","checkSpecKeys","checkNavigable","validSettings","reduce","acc","settingName","slidesOnRight","slidesOnLeft","siblingDirection","safePreventDefault","lazySlidesOnRight","lazySlidesOnLeft","getWidth","getTrackAnimateCSS","getTotalSlides","getSwipeDirection","getSlideCount","getRequiredLazySlides","getNavigableIndexes","lowerBound","upperBound","onDemandSlides","requiredSlides","xDist","yDist","swipeAngle","canGo","newObject","listNode","trackNode","centerPaddingAdj","finalSlide","animationLeft","finalLeft","animationSlide","indexOffset","previousInt","slideOffset","previousTargetSlide","curLeft","swipeLength","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","onSwipe","minSwipe","activeSlide","counter","navigables","prevNavigable","swipedSlide","slickList","from","every","offsetTop","offsetLeft","keysArray","trackHeight","trackChildren","WebkitTransition","WebkitTransform","msTransform","marginTop","marginLeft","slidesToOffset","targetSlideIndex","trackElem","_ref","_ref2","__self","__source","Fragment","jsx","jsxs","forceUpdate","escape","_status","_result","default","only","Profiler","StrictMode","Suspense","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","MapShim","getIndex","some","entry","class_1","__entries__","_a","isBrowser","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","delay","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","throttle","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","childList","characterData","subtree","_b","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","positions","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getContentRect","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","observation","ResizeObserver","method","copyBuffer","Buffer","byteOffset","opts","circles","refsNew","constructorHandlers","cloneArray","proto","cloneProto","rfdcCircles","sortIndex","performance","setImmediate","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","unsupportedIterableToArray","allowArrayLike","_e","normalCompletion","didErr","step","_e2","arrayLikeToArray","minLen","hasOwn","classNames","classes","arg","appendClass","parseValue","newClass","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","getter","definition","chunkId","all","promises","miniCssF","globalThis","inProgress","dataWebpackPrefix","script","needAttach","getAttribute","charset","timeout","nc","onScriptComplete","prev","doneFns","head","toStringTag","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","hint","prim","res","_objectSpread2","_arrayLikeToArray","_slicedToArray","environment","assetName","considerTheseInternal","isInternalLink","startsWith","internalLinkRegex","sendAnalytics","actionType","currentScreen","oA","referrer","sendClickInternalOrExternal","oUrl","sendClickHash","sendSlideSwipe","__spreadArray","pack","ar","SuppressedError","cloneSvg","sourceSvg","cloneNode","isLocal","protocol","makeAjaxRequest","httpRequestWithCredentials","httpRequest","contentType","responseXML","statusText","abort","withCredentials","overrideMimeType","requestQueue","queueRequest","loadSvgCached","cacheValue","SVGSVGElement","_loop_1","processRequestQueue","loadSvgUncached","idCounter","injectedElements","ranScripts","xlinkNamespace","injectElement","evalScripts","renumerateIRIElements","cacheRequests","beforeEach","elUrl","elId","elTitle","elWidth","elHeight","mergedClasses","elStyle","elData","at","dataAttr","element_1","elements_1","properties_1","currentId_1","newId_1","iriElementsAndProperties_1","clipPath","cursor","linearGradient","pattern","radialGradient","elementsLen","referencingElements","referencingElementLen","attrValue","allLinks","links","allLinksLen","getAttributeNS","linksLen","scriptType","scriptsToEval","scriptsLen","scriptsToEvalLen","styleTags","styleTag","replaceChild","svgNamespace","ReactSVG","initialState","hasError","isLoading","_isMounted","reactWrapper","nonReactWrapper","refCallback","_proto","renderSVG","Node","nonReactTarget","desc","useRequestCache","beforeInjection","afterInjection","handleError","removeSVG","_c","afterAll","_d","afterEach","_f","_g","_h","_j","elementsLoaded_1","SVGInjector","afterInjectionError","originalDesc","newDesc","prepend","originalTitle","newTitle","_this$nonReactWrapper","shallowDiffers","_this$props2","Fallback","Loading","loading","rest","_excluded","Wrapper","React","xmlns","xmlnsXlink","model","iconClasses","_jsx","icon","_ref$variant","variant","_ref$text","theme","iconSize","linkTarget","_ref$size","_ref$classes","_ref$sendAnalytics","_ref$currentScreen","isSelected","allClasses","isIconOnly","isIconAndText","sizeClasses","baseClasses","analyticsText","extractAnalyticsText","iconExternalLink","iconModel","handleClick","_jsxs","Icon","emptyObject","LottiePlayer","Lottie","forwardedRef","_params$play","_params$speed","_params$direction","_params$segments","segmentsIn","_params$goTo","goTo","_params$useSubframes","useSubframes","_params$renderer","_params$loop","_params$rendererSetti","rendererSettingsIn","_params$onLoad","onLoad","_params$onComplete","_params$onLoopComplet","_params$onEnterFrame","_params$onSegmentStar","propsFiltered","_props","_props2","animElementRef","animRef","getAnim","_useState","ready","setReady","_useState2","setSegments","_useState3","setRendererSettings","setLottieRefs","newRef","onDomLoaded","wasPlayingSegmentsRef","playReverse","makeLottiePlayer","_ref$level","_Fragment","lottieSettings","lottieRef","Heading","setCurrentIndex","allSlides","iconHome","imageIntro","animationIntro","Button","iconArrowRight","jumpToSlide","imageCapture","animationCapture","imageTransport","animationTransport","imageStorage","animationStorage","imageMonitor","animationMonitor","_useState4","sliderRef","lottieRefs","iconArrowLeft","slider","oldIndex","newIndex","Slide","HowDoesCCSWork","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","App","reportWebVitals"],"sourceRoot":""}