Your IP : 3.144.30.14


Current Path : /var/www/www-root/data/www/info.monolith-realty.ru/bitrix/js/ui/lottie/dist/
Upload File :
Current File : /var/www/www-root/data/www/info.monolith-realty.ru/bitrix/js/ui/lottie/dist/lottie.bundle.js.map

{"version":3,"file":"lottie.bundle.js","sources":["../src/lottie.js"],"sourcesContent":["/*!\n * Lottie-web v5.9.6\n * Copyright (c) 2015 Bodymovin\n * @license MIT\n *\n * @source: https://unpkg.com/lottie-web@5.9.6/build/player/esm/lottie.min.js\n */\n\n/**\n * Modify list for integration with Bitrix Framework:\n * - remove global export;\n * - replace utf8 symbols in comments for BezierFactory library\n */\n\nconst svgNS = 'http://www.w3.org/2000/svg';\n\nlet locationHref = '';\nlet _useWebWorker = false;\n\nconst initialDefaultFrame = -999999;\n\nconst setWebWorker = (flag) => { _useWebWorker = !!flag; };\nconst getWebWorker = () => _useWebWorker;\n\nconst setLocationHref = (value) => { locationHref = value; };\nconst getLocationHref = () => locationHref;\n\nfunction createTag(type) {\n\t// return {appendChild:function(){},setAttribute:function(){},style:{}}\n\treturn document.createElement(type);\n}\n\nfunction extendPrototype(sources, destination) {\n\tvar i;\n\tvar len = sources.length;\n\tvar sourcePrototype;\n\tfor (i = 0; i < len; i += 1) {\n\t\tsourcePrototype = sources[i].prototype;\n\t\tfor (var attr in sourcePrototype) {\n\t\t\tif (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n\t\t}\n\t}\n}\n\nfunction getDescriptor(object, prop) {\n\treturn Object.getOwnPropertyDescriptor(object, prop);\n}\n\nfunction createProxyFunction(prototype) {\n\tfunction ProxyFunction() {}\n\tProxyFunction.prototype = prototype;\n\treturn ProxyFunction;\n}\n\n// import Howl from '../../3rd_party/howler';\n\nconst audioControllerFactory = (function () {\n\tfunction AudioController(audioFactory) {\n\t\tthis.audios = [];\n\t\tthis.audioFactory = audioFactory;\n\t\tthis._volume = 1;\n\t\tthis._isMuted = false;\n\t}\n\n\tAudioController.prototype = {\n\t\taddAudio: function (audio) {\n\t\t\tthis.audios.push(audio);\n\t\t},\n\t\tpause: function () {\n\t\t\tvar i;\n\t\t\tvar len = this.audios.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tthis.audios[i].pause();\n\t\t\t}\n\t\t},\n\t\tresume: function () {\n\t\t\tvar i;\n\t\t\tvar len = this.audios.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tthis.audios[i].resume();\n\t\t\t}\n\t\t},\n\t\tsetRate: function (rateValue) {\n\t\t\tvar i;\n\t\t\tvar len = this.audios.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tthis.audios[i].setRate(rateValue);\n\t\t\t}\n\t\t},\n\t\tcreateAudio: function (assetPath) {\n\t\t\tif (this.audioFactory) {\n\t\t\t\treturn this.audioFactory(assetPath);\n\t\t\t} if (window.Howl) {\n\t\t\t\treturn new window.Howl({\n\t\t\t\t\tsrc: [assetPath],\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tisPlaying: false,\n\t\t\t\tplay: function () { this.isPlaying = true; },\n\t\t\t\tseek: function () { this.isPlaying = false; },\n\t\t\t\tplaying: function () {},\n\t\t\t\trate: function () {},\n\t\t\t\tsetVolume: function () {},\n\t\t\t};\n\t\t},\n\t\tsetAudioFactory: function (audioFactory) {\n\t\t\tthis.audioFactory = audioFactory;\n\t\t},\n\t\tsetVolume: function (value) {\n\t\t\tthis._volume = value;\n\t\t\tthis._updateVolume();\n\t\t},\n\t\tmute: function () {\n\t\t\tthis._isMuted = true;\n\t\t\tthis._updateVolume();\n\t\t},\n\t\tunmute: function () {\n\t\t\tthis._isMuted = false;\n\t\t\tthis._updateVolume();\n\t\t},\n\t\tgetVolume: function () {\n\t\t\treturn this._volume;\n\t\t},\n\t\t_updateVolume: function () {\n\t\t\tvar i;\n\t\t\tvar len = this.audios.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tthis.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n\t\t\t}\n\t\t},\n\t};\n\n\treturn function () {\n\t\treturn new AudioController();\n\t};\n}());\n\nconst createTypedArray = (function () {\n\tfunction createRegularArray(type, len) {\n\t\tvar i = 0;\n\t\tvar arr = [];\n\t\tvar value;\n\t\tswitch (type) {\n\t\t\tcase 'int16':\n\t\t\tcase 'uint8c':\n\t\t\t\tvalue = 1;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tvalue = 1.1;\n\t\t\t\tbreak;\n\t\t}\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tarr.push(value);\n\t\t}\n\t\treturn arr;\n\t}\n\tfunction createTypedArrayFactory(type, len) {\n\t\tif (type === 'float32') {\n\t\t\treturn new Float32Array(len);\n\t\t} if (type === 'int16') {\n\t\t\treturn new Int16Array(len);\n\t\t} if (type === 'uint8c') {\n\t\t\treturn new Uint8ClampedArray(len);\n\t\t}\n\t\treturn createRegularArray(type, len);\n\t}\n\tif (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n\t\treturn createTypedArrayFactory;\n\t}\n\treturn createRegularArray;\n}());\n\nfunction createSizedArray(len) {\n\treturn Array.apply(null, { length: len });\n}\n\nlet subframeEnabled = true;\nlet expressionsPlugin = null;\nlet idPrefix$1 = '';\nconst isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\nlet _shouldRoundValues = false;\nconst bmPow = Math.pow;\nconst bmSqrt = Math.sqrt;\nconst bmFloor = Math.floor;\nconst bmMax = Math.max;\nconst bmMin = Math.min;\n\nconst BMMath = {};\n(function () {\n\tvar 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\tvar i;\n\tvar len = propertyNames.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tBMMath[propertyNames[i]] = Math[propertyNames[i]];\n\t}\n}());\n\nfunction ProjectInterface$1() { return {}; }\nBMMath.random = Math.random;\nBMMath.abs = function (val) {\n\tvar tOfVal = typeof val;\n\tif (tOfVal === 'object' && val.length) {\n\t\tvar absArr = createSizedArray(val.length);\n\t\tvar i;\n\t\tvar len = val.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tabsArr[i] = Math.abs(val[i]);\n\t\t}\n\t\treturn absArr;\n\t}\n\treturn Math.abs(val);\n};\nlet defaultCurveSegments = 150;\nconst degToRads = Math.PI / 180;\nconst roundCorner = 0.5519;\n\nfunction roundValues(flag) {\n\t_shouldRoundValues = !!flag;\n}\n\nfunction bmRnd(value) {\n\tif (_shouldRoundValues) {\n\t\treturn Math.round(value);\n\t}\n\treturn value;\n}\n\nfunction styleDiv(element) {\n\telement.style.position = 'absolute';\n\telement.style.top = 0;\n\telement.style.left = 0;\n\telement.style.display = 'block';\n\telement.style.transformOrigin = '0 0';\n\telement.style.webkitTransformOrigin = '0 0';\n\telement.style.backfaceVisibility = 'visible';\n\telement.style.webkitBackfaceVisibility = 'visible';\n\telement.style.transformStyle = 'preserve-3d';\n\telement.style.webkitTransformStyle = 'preserve-3d';\n\telement.style.mozTransformStyle = 'preserve-3d';\n}\n\nfunction BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n\tthis.type = type;\n\tthis.currentTime = currentTime;\n\tthis.totalTime = totalTime;\n\tthis.direction = frameMultiplier < 0 ? -1 : 1;\n}\n\nfunction BMCompleteEvent(type, frameMultiplier) {\n\tthis.type = type;\n\tthis.direction = frameMultiplier < 0 ? -1 : 1;\n}\n\nfunction BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n\tthis.type = type;\n\tthis.currentLoop = currentLoop;\n\tthis.totalLoops = totalLoops;\n\tthis.direction = frameMultiplier < 0 ? -1 : 1;\n}\n\nfunction BMSegmentStartEvent(type, firstFrame, totalFrames) {\n\tthis.type = type;\n\tthis.firstFrame = firstFrame;\n\tthis.totalFrames = totalFrames;\n}\n\nfunction BMDestroyEvent(type, target) {\n\tthis.type = type;\n\tthis.target = target;\n}\n\nfunction BMRenderFrameErrorEvent(nativeError, currentTime) {\n\tthis.type = 'renderFrameError';\n\tthis.nativeError = nativeError;\n\tthis.currentTime = currentTime;\n}\n\nfunction BMConfigErrorEvent(nativeError) {\n\tthis.type = 'configError';\n\tthis.nativeError = nativeError;\n}\n\nfunction BMAnimationConfigErrorEvent(type, nativeError) {\n\tthis.type = type;\n\tthis.nativeError = nativeError;\n}\n\nconst createElementID = (function () {\n\tvar _count = 0;\n\treturn function createID() {\n\t\t_count += 1;\n\t\treturn idPrefix$1 + '__lottie_element_' + _count;\n\t};\n}());\n\nfunction HSVtoRGB(h, s, v) {\n\tvar r;\n\tvar g;\n\tvar b;\n\tvar i;\n\tvar f;\n\tvar p;\n\tvar q;\n\tvar t;\n\ti = Math.floor(h * 6);\n\tf = h * 6 - i;\n\tp = v * (1 - s);\n\tq = v * (1 - f * s);\n\tt = v * (1 - (1 - f) * s);\n\tswitch (i % 6) {\n\t\tcase 0: r = v; g = t; b = p; break;\n\t\tcase 1: r = q; g = v; b = p; break;\n\t\tcase 2: r = p; g = v; b = t; break;\n\t\tcase 3: r = p; g = q; b = v; break;\n\t\tcase 4: r = t; g = p; b = v; break;\n\t\tcase 5: r = v; g = p; b = q; break;\n\t\tdefault: break;\n\t}\n\treturn [r,\n\t\tg,\n\t\tb];\n}\n\nfunction RGBtoHSV(r, g, b) {\n\tvar max = Math.max(r, g, b);\n\tvar min = Math.min(r, g, b);\n\tvar d = max - min;\n\tvar h;\n\tvar s = (max === 0 ? 0 : d / max);\n\tvar v = max / 255;\n\n\tswitch (max) {\n\t\tcase min: h = 0; break;\n\t\tcase r: h = (g - b) + d * (g < b ? 6 : 0); h /= 6 * d; break;\n\t\tcase g: h = (b - r) + d * 2; h /= 6 * d; break;\n\t\tcase b: h = (r - g) + d * 4; h /= 6 * d; break;\n\t\tdefault: break;\n\t}\n\n\treturn [\n\t\th,\n\t\ts,\n\t\tv,\n\t];\n}\n\nfunction addSaturationToRGB(color, offset) {\n\tvar hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n\thsv[1] += offset;\n\tif (hsv[1] > 1) {\n\t\thsv[1] = 1;\n\t} else if (hsv[1] <= 0) {\n\t\thsv[1] = 0;\n\t}\n\treturn HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n}\n\nfunction addBrightnessToRGB(color, offset) {\n\tvar hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n\thsv[2] += offset;\n\tif (hsv[2] > 1) {\n\t\thsv[2] = 1;\n\t} else if (hsv[2] < 0) {\n\t\thsv[2] = 0;\n\t}\n\treturn HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n}\n\nfunction addHueToRGB(color, offset) {\n\tvar hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n\thsv[0] += offset / 360;\n\tif (hsv[0] > 1) {\n\t\thsv[0] -= 1;\n\t} else if (hsv[0] < 0) {\n\t\thsv[0] += 1;\n\t}\n\treturn HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n}\n\nconst rgbToHex = (function () {\n\tvar colorMap = [];\n\tvar i;\n\tvar hex;\n\tfor (i = 0; i < 256; i += 1) {\n\t\thex = i.toString(16);\n\t\tcolorMap[i] = hex.length === 1 ? '0' + hex : hex;\n\t}\n\n\treturn function (r, g, b) {\n\t\tif (r < 0) {\n\t\t\tr = 0;\n\t\t}\n\t\tif (g < 0) {\n\t\t\tg = 0;\n\t\t}\n\t\tif (b < 0) {\n\t\t\tb = 0;\n\t\t}\n\t\treturn '#' + colorMap[r] + colorMap[g] + colorMap[b];\n\t};\n}());\n\nconst setSubframeEnabled = (flag) => { subframeEnabled = !!flag; };\nconst getSubframeEnabled = () => subframeEnabled;\nconst setExpressionsPlugin = (value) => { expressionsPlugin = value; };\nconst getExpressionsPlugin = () => expressionsPlugin;\nconst setDefaultCurveSegments = (value) => { defaultCurveSegments = value; };\nconst getDefaultCurveSegments = () => defaultCurveSegments;\nconst setIdPrefix = (value) => { idPrefix$1 = value; };\nconst getIdPrefix = () => idPrefix$1;\n\nfunction createNS(type) {\n\t// return {appendChild:function(){},setAttribute:function(){},style:{}}\n\treturn document.createElementNS(svgNS, type);\n}\n\nconst dataManager = (function () {\n\tvar _counterId = 1;\n\tvar processes = [];\n\tvar workerFn;\n\tvar workerInstance;\n\tvar workerProxy = {\n\t\tonmessage: function () {\n\n\t\t},\n\t\tpostMessage: function (path) {\n\t\t\tworkerFn({\n\t\t\t\tdata: path,\n\t\t\t});\n\t\t},\n\t};\n\tvar _workerSelf = {\n\t\tpostMessage: function (data) {\n\t\t\tworkerProxy.onmessage({\n\t\t\t\tdata: data,\n\t\t\t});\n\t\t},\n\t};\n\tfunction createWorker(fn) {\n\t\tif (window.Worker && window.Blob && getWebWorker()) {\n\t\t\tvar blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\t\t\t// var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\treturn new Worker(url);\n\t\t}\n\t\tworkerFn = fn;\n\t\treturn workerProxy;\n\t}\n\n\tfunction setupWorker() {\n\t\tif (!workerInstance) {\n\t\t\tworkerInstance = createWorker(function workerStart(e) {\n\t\t\t\tfunction dataFunctionManager() {\n\t\t\t\t\tfunction completeLayers(layers, comps) {\n\t\t\t\t\t\tvar layerData;\n\t\t\t\t\t\tvar i;\n\t\t\t\t\t\tvar len = layers.length;\n\t\t\t\t\t\tvar j;\n\t\t\t\t\t\tvar jLen;\n\t\t\t\t\t\tvar k;\n\t\t\t\t\t\tvar kLen;\n\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\tlayerData = layers[i];\n\t\t\t\t\t\t\tif (('ks' in layerData) && !layerData.completed) {\n\t\t\t\t\t\t\t\tlayerData.completed = true;\n\t\t\t\t\t\t\t\tif (layerData.tt) {\n\t\t\t\t\t\t\t\t\tlayers[i - 1].td = layerData.tt;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (layerData.hasMask) {\n\t\t\t\t\t\t\t\t\tvar maskProps = layerData.masksProperties;\n\t\t\t\t\t\t\t\t\tjLen = maskProps.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\t\t\t\t\t\tif (maskProps[j].pt.k.i) {\n\t\t\t\t\t\t\t\t\t\t\tconvertPathsToAbsoluteValues(maskProps[j].pt.k);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tkLen = maskProps[j].pt.k.length;\n\t\t\t\t\t\t\t\t\t\t\tfor (k = 0; k < kLen; k += 1) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (maskProps[j].pt.k[k].s) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconvertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tif (maskProps[j].pt.k[k].e) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconvertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (layerData.ty === 0) {\n\t\t\t\t\t\t\t\t\tlayerData.layers = findCompLayers(layerData.refId, comps);\n\t\t\t\t\t\t\t\t\tcompleteLayers(layerData.layers, comps);\n\t\t\t\t\t\t\t\t} else if (layerData.ty === 4) {\n\t\t\t\t\t\t\t\t\tcompleteShapes(layerData.shapes);\n\t\t\t\t\t\t\t\t} else if (layerData.ty === 5) {\n\t\t\t\t\t\t\t\t\tcompleteText(layerData);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction completeChars(chars, assets) {\n\t\t\t\t\t\tif (chars) {\n\t\t\t\t\t\t\tvar i = 0;\n\t\t\t\t\t\t\tvar len = chars.length;\n\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\tif (chars[i].t === 1) {\n\t\t\t\t\t\t\t\t\t// var compData = findComp(chars[i].data.refId, assets);\n\t\t\t\t\t\t\t\t\tchars[i].data.layers = findCompLayers(chars[i].data.refId, assets);\n\t\t\t\t\t\t\t\t\t// chars[i].data.ip = 0;\n\t\t\t\t\t\t\t\t\t// chars[i].data.op = 99999;\n\t\t\t\t\t\t\t\t\t// chars[i].data.st = 0;\n\t\t\t\t\t\t\t\t\t// chars[i].data.sr = 1;\n\t\t\t\t\t\t\t\t\t// chars[i].w = compData.w;\n\t\t\t\t\t\t\t\t\t// chars[i].data.ks = {\n\t\t\t\t\t\t\t\t\t//   a: { k: [0, 0, 0], a: 0 },\n\t\t\t\t\t\t\t\t\t//   p: { k: [0, -compData.h, 0], a: 0 },\n\t\t\t\t\t\t\t\t\t//   r: { k: 0, a: 0 },\n\t\t\t\t\t\t\t\t\t//   s: { k: [100, 100], a: 0 },\n\t\t\t\t\t\t\t\t\t//   o: { k: 100, a: 0 },\n\t\t\t\t\t\t\t\t\t// };\n\t\t\t\t\t\t\t\t\tcompleteLayers(chars[i].data.layers, assets);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction findComp(id, comps) {\n\t\t\t\t\t\tvar i = 0;\n\t\t\t\t\t\tvar len = comps.length;\n\t\t\t\t\t\twhile (i < len) {\n\t\t\t\t\t\t\tif (comps[i].id === id) {\n\t\t\t\t\t\t\t\treturn comps[i];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction findCompLayers(id, comps) {\n\t\t\t\t\t\tvar comp = findComp(id, comps);\n\t\t\t\t\t\tif (comp) {\n\t\t\t\t\t\t\tif (!comp.layers.__used) {\n\t\t\t\t\t\t\t\tcomp.layers.__used = true;\n\t\t\t\t\t\t\t\treturn comp.layers;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn JSON.parse(JSON.stringify(comp.layers));\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction completeShapes(arr) {\n\t\t\t\t\t\tvar i;\n\t\t\t\t\t\tvar len = arr.length;\n\t\t\t\t\t\tvar j;\n\t\t\t\t\t\tvar jLen;\n\t\t\t\t\t\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\t\t\t\t\t\tif (arr[i].ty === 'sh') {\n\t\t\t\t\t\t\t\tif (arr[i].ks.k.i) {\n\t\t\t\t\t\t\t\t\tconvertPathsToAbsoluteValues(arr[i].ks.k);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tjLen = arr[i].ks.k.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\t\t\t\t\t\tif (arr[i].ks.k[j].s) {\n\t\t\t\t\t\t\t\t\t\t\tconvertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (arr[i].ks.k[j].e) {\n\t\t\t\t\t\t\t\t\t\t\tconvertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (arr[i].ty === 'gr') {\n\t\t\t\t\t\t\t\tcompleteShapes(arr[i].it);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction convertPathsToAbsoluteValues(path) {\n\t\t\t\t\t\tvar i;\n\t\t\t\t\t\tvar len = path.i.length;\n\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\tpath.i[i][0] += path.v[i][0];\n\t\t\t\t\t\t\tpath.i[i][1] += path.v[i][1];\n\t\t\t\t\t\t\tpath.o[i][0] += path.v[i][0];\n\t\t\t\t\t\t\tpath.o[i][1] += path.v[i][1];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction checkVersion(minimum, animVersionString) {\n\t\t\t\t\t\tvar animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\t\t\t\t\t\tif (minimum[0] > animVersion[0]) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t} if (animVersion[0] > minimum[0]) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (minimum[1] > animVersion[1]) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t} if (animVersion[1] > minimum[1]) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (minimum[2] > animVersion[2]) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t} if (animVersion[2] > minimum[2]) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar checkText = (function () {\n\t\t\t\t\t\tvar minimumVersion = [4, 4, 14];\n\n\t\t\t\t\t\tfunction updateTextLayer(textLayer) {\n\t\t\t\t\t\t\tvar documentData = textLayer.t.d;\n\t\t\t\t\t\t\ttextLayer.t.d = {\n\t\t\t\t\t\t\t\tk: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ts: documentData,\n\t\t\t\t\t\t\t\t\t\tt: 0,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfunction iterateLayers(layers) {\n\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\tvar len = layers.length;\n\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\tif (layers[i].ty === 5) {\n\t\t\t\t\t\t\t\t\tupdateTextLayer(layers[i]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn function (animationData) {\n\t\t\t\t\t\t\tif (checkVersion(minimumVersion, animationData.v)) {\n\t\t\t\t\t\t\t\titerateLayers(animationData.layers);\n\t\t\t\t\t\t\t\tif (animationData.assets) {\n\t\t\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\t\t\tvar len = animationData.assets.length;\n\t\t\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\t\t\tif (animationData.assets[i].layers) {\n\t\t\t\t\t\t\t\t\t\t\titerateLayers(animationData.assets[i].layers);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}());\n\n\t\t\t\t\tvar checkChars = (function () {\n\t\t\t\t\t\tvar minimumVersion = [4, 7, 99];\n\t\t\t\t\t\treturn function (animationData) {\n\t\t\t\t\t\t\tif (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n\t\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\t\tvar len = animationData.chars.length;\n\t\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\t\tvar charData = animationData.chars[i];\n\t\t\t\t\t\t\t\t\tif (charData.data && charData.data.shapes) {\n\t\t\t\t\t\t\t\t\t\tcompleteShapes(charData.data.shapes);\n\t\t\t\t\t\t\t\t\t\tcharData.data.ip = 0;\n\t\t\t\t\t\t\t\t\t\tcharData.data.op = 99999;\n\t\t\t\t\t\t\t\t\t\tcharData.data.st = 0;\n\t\t\t\t\t\t\t\t\t\tcharData.data.sr = 1;\n\t\t\t\t\t\t\t\t\t\tcharData.data.ks = {\n\t\t\t\t\t\t\t\t\t\t\tp: { k: [0, 0], a: 0 },\n\t\t\t\t\t\t\t\t\t\t\ts: { k: [100, 100], a: 0 },\n\t\t\t\t\t\t\t\t\t\t\ta: { k: [0, 0], a: 0 },\n\t\t\t\t\t\t\t\t\t\t\tr: { k: 0, a: 0 },\n\t\t\t\t\t\t\t\t\t\t\to: { k: 100, a: 0 },\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\tif (!animationData.chars[i].t) {\n\t\t\t\t\t\t\t\t\t\t\tcharData.data.shapes.push(\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tty: 'no',\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tcharData.data.shapes[0].it.push(\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tp: { k: [0, 0], a: 0 },\n\t\t\t\t\t\t\t\t\t\t\t\t\ts: { k: [100, 100], a: 0 },\n\t\t\t\t\t\t\t\t\t\t\t\t\ta: { k: [0, 0], a: 0 },\n\t\t\t\t\t\t\t\t\t\t\t\t\tr: { k: 0, a: 0 },\n\t\t\t\t\t\t\t\t\t\t\t\t\to: { k: 100, a: 0 },\n\t\t\t\t\t\t\t\t\t\t\t\t\tsk: { k: 0, a: 0 },\n\t\t\t\t\t\t\t\t\t\t\t\t\tsa: { k: 0, a: 0 },\n\t\t\t\t\t\t\t\t\t\t\t\t\tty: 'tr',\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}());\n\n\t\t\t\t\tvar checkPathProperties = (function () {\n\t\t\t\t\t\tvar minimumVersion = [5, 7, 15];\n\n\t\t\t\t\t\tfunction updateTextLayer(textLayer) {\n\t\t\t\t\t\t\tvar pathData = textLayer.t.p;\n\t\t\t\t\t\t\tif (typeof pathData.a === 'number') {\n\t\t\t\t\t\t\t\tpathData.a = {\n\t\t\t\t\t\t\t\t\ta: 0,\n\t\t\t\t\t\t\t\t\tk: pathData.a,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (typeof pathData.p === 'number') {\n\t\t\t\t\t\t\t\tpathData.p = {\n\t\t\t\t\t\t\t\t\ta: 0,\n\t\t\t\t\t\t\t\t\tk: pathData.p,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (typeof pathData.r === 'number') {\n\t\t\t\t\t\t\t\tpathData.r = {\n\t\t\t\t\t\t\t\t\ta: 0,\n\t\t\t\t\t\t\t\t\tk: pathData.r,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfunction iterateLayers(layers) {\n\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\tvar len = layers.length;\n\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\tif (layers[i].ty === 5) {\n\t\t\t\t\t\t\t\t\tupdateTextLayer(layers[i]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn function (animationData) {\n\t\t\t\t\t\t\tif (checkVersion(minimumVersion, animationData.v)) {\n\t\t\t\t\t\t\t\titerateLayers(animationData.layers);\n\t\t\t\t\t\t\t\tif (animationData.assets) {\n\t\t\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\t\t\tvar len = animationData.assets.length;\n\t\t\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\t\t\tif (animationData.assets[i].layers) {\n\t\t\t\t\t\t\t\t\t\t\titerateLayers(animationData.assets[i].layers);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}());\n\n\t\t\t\t\tvar checkColors = (function () {\n\t\t\t\t\t\tvar minimumVersion = [4, 1, 9];\n\n\t\t\t\t\t\tfunction iterateShapes(shapes) {\n\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\tvar len = shapes.length;\n\t\t\t\t\t\t\tvar j;\n\t\t\t\t\t\t\tvar jLen;\n\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\tif (shapes[i].ty === 'gr') {\n\t\t\t\t\t\t\t\t\titerateShapes(shapes[i].it);\n\t\t\t\t\t\t\t\t} else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n\t\t\t\t\t\t\t\t\tif (shapes[i].c.k && shapes[i].c.k[0].i) {\n\t\t\t\t\t\t\t\t\t\tjLen = shapes[i].c.k.length;\n\t\t\t\t\t\t\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\t\t\t\t\t\t\tif (shapes[i].c.k[j].s) {\n\t\t\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[j].s[0] /= 255;\n\t\t\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[j].s[1] /= 255;\n\t\t\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[j].s[2] /= 255;\n\t\t\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[j].s[3] /= 255;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tif (shapes[i].c.k[j].e) {\n\t\t\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[j].e[0] /= 255;\n\t\t\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[j].e[1] /= 255;\n\t\t\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[j].e[2] /= 255;\n\t\t\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[j].e[3] /= 255;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[0] /= 255;\n\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[1] /= 255;\n\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[2] /= 255;\n\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[3] /= 255;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfunction iterateLayers(layers) {\n\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\tvar len = layers.length;\n\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\tif (layers[i].ty === 4) {\n\t\t\t\t\t\t\t\t\titerateShapes(layers[i].shapes);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn function (animationData) {\n\t\t\t\t\t\t\tif (checkVersion(minimumVersion, animationData.v)) {\n\t\t\t\t\t\t\t\titerateLayers(animationData.layers);\n\t\t\t\t\t\t\t\tif (animationData.assets) {\n\t\t\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\t\t\tvar len = animationData.assets.length;\n\t\t\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\t\t\tif (animationData.assets[i].layers) {\n\t\t\t\t\t\t\t\t\t\t\titerateLayers(animationData.assets[i].layers);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}());\n\n\t\t\t\t\tvar checkShapes = (function () {\n\t\t\t\t\t\tvar minimumVersion = [4, 4, 18];\n\n\t\t\t\t\t\tfunction completeClosingShapes(arr) {\n\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\tvar len = arr.length;\n\t\t\t\t\t\t\tvar j;\n\t\t\t\t\t\t\tvar jLen;\n\t\t\t\t\t\t\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\t\t\t\t\t\t\tif (arr[i].ty === 'sh') {\n\t\t\t\t\t\t\t\t\tif (arr[i].ks.k.i) {\n\t\t\t\t\t\t\t\t\t\tarr[i].ks.k.c = arr[i].closed;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tjLen = arr[i].ks.k.length;\n\t\t\t\t\t\t\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\t\t\t\t\t\t\tif (arr[i].ks.k[j].s) {\n\t\t\t\t\t\t\t\t\t\t\t\tarr[i].ks.k[j].s[0].c = arr[i].closed;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tif (arr[i].ks.k[j].e) {\n\t\t\t\t\t\t\t\t\t\t\t\tarr[i].ks.k[j].e[0].c = arr[i].closed;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (arr[i].ty === 'gr') {\n\t\t\t\t\t\t\t\t\tcompleteClosingShapes(arr[i].it);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfunction iterateLayers(layers) {\n\t\t\t\t\t\t\tvar layerData;\n\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\tvar len = layers.length;\n\t\t\t\t\t\t\tvar j;\n\t\t\t\t\t\t\tvar jLen;\n\t\t\t\t\t\t\tvar k;\n\t\t\t\t\t\t\tvar kLen;\n\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\tlayerData = layers[i];\n\t\t\t\t\t\t\t\tif (layerData.hasMask) {\n\t\t\t\t\t\t\t\t\tvar maskProps = layerData.masksProperties;\n\t\t\t\t\t\t\t\t\tjLen = maskProps.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\t\t\t\t\t\tif (maskProps[j].pt.k.i) {\n\t\t\t\t\t\t\t\t\t\t\tmaskProps[j].pt.k.c = maskProps[j].cl;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tkLen = maskProps[j].pt.k.length;\n\t\t\t\t\t\t\t\t\t\t\tfor (k = 0; k < kLen; k += 1) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (maskProps[j].pt.k[k].s) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmaskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tif (maskProps[j].pt.k[k].e) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmaskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (layerData.ty === 4) {\n\t\t\t\t\t\t\t\t\tcompleteClosingShapes(layerData.shapes);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn function (animationData) {\n\t\t\t\t\t\t\tif (checkVersion(minimumVersion, animationData.v)) {\n\t\t\t\t\t\t\t\titerateLayers(animationData.layers);\n\t\t\t\t\t\t\t\tif (animationData.assets) {\n\t\t\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\t\t\tvar len = animationData.assets.length;\n\t\t\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\t\t\tif (animationData.assets[i].layers) {\n\t\t\t\t\t\t\t\t\t\t\titerateLayers(animationData.assets[i].layers);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}());\n\n\t\t\t\t\tfunction completeData(animationData) {\n\t\t\t\t\t\tif (animationData.__complete) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcheckColors(animationData);\n\t\t\t\t\t\tcheckText(animationData);\n\t\t\t\t\t\tcheckChars(animationData);\n\t\t\t\t\t\tcheckPathProperties(animationData);\n\t\t\t\t\t\tcheckShapes(animationData);\n\t\t\t\t\t\tcompleteLayers(animationData.layers, animationData.assets);\n\t\t\t\t\t\tcompleteChars(animationData.chars, animationData.assets);\n\t\t\t\t\t\tanimationData.__complete = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction completeText(data) {\n\t\t\t\t\t\tif (data.t.a.length === 0 && !('m' in data.t.p)) {\n\t\t\t\t\t\t\t// data.singleShape = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar moduleOb = {};\n\t\t\t\t\tmoduleOb.completeData = completeData;\n\t\t\t\t\tmoduleOb.checkColors = checkColors;\n\t\t\t\t\tmoduleOb.checkChars = checkChars;\n\t\t\t\t\tmoduleOb.checkPathProperties = checkPathProperties;\n\t\t\t\t\tmoduleOb.checkShapes = checkShapes;\n\t\t\t\t\tmoduleOb.completeLayers = completeLayers;\n\n\t\t\t\t\treturn moduleOb;\n\t\t\t\t}\n\t\t\t\tif (!_workerSelf.dataManager) {\n\t\t\t\t\t_workerSelf.dataManager = dataFunctionManager();\n\t\t\t\t}\n\n\t\t\t\tif (!_workerSelf.assetLoader) {\n\t\t\t\t\t_workerSelf.assetLoader = (function () {\n\t\t\t\t\t\tfunction formatResponse(xhr) {\n\t\t\t\t\t\t\t// using typeof doubles the time of execution of this method,\n\t\t\t\t\t\t\t// so if available, it's better to use the header to validate the type\n\t\t\t\t\t\t\tvar contentTypeHeader = xhr.getResponseHeader('content-type');\n\t\t\t\t\t\t\tif (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n\t\t\t\t\t\t\t\treturn xhr.response;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (xhr.response && typeof xhr.response === 'object') {\n\t\t\t\t\t\t\t\treturn xhr.response;\n\t\t\t\t\t\t\t} if (xhr.response && typeof xhr.response === 'string') {\n\t\t\t\t\t\t\t\treturn JSON.parse(xhr.response);\n\t\t\t\t\t\t\t} if (xhr.responseText) {\n\t\t\t\t\t\t\t\treturn JSON.parse(xhr.responseText);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfunction loadAsset(path, fullPath, callback, errorCallback) {\n\t\t\t\t\t\t\tvar response;\n\t\t\t\t\t\t\tvar xhr = new XMLHttpRequest();\n\t\t\t\t\t\t\t// set responseType after calling open or IE will break.\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t// This crashes on Android WebView prior to KitKat\n\t\t\t\t\t\t\t\txhr.responseType = 'json';\n\t\t\t\t\t\t\t} catch (err) {} // eslint-disable-line no-empty\n\t\t\t\t\t\t\txhr.onreadystatechange = function () {\n\t\t\t\t\t\t\t\tif (xhr.readyState === 4) {\n\t\t\t\t\t\t\t\t\tif (xhr.status === 200) {\n\t\t\t\t\t\t\t\t\t\tresponse = formatResponse(xhr);\n\t\t\t\t\t\t\t\t\t\tcallback(response);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tresponse = formatResponse(xhr);\n\t\t\t\t\t\t\t\t\t\t\tcallback(response);\n\t\t\t\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t\t\t\tif (errorCallback) {\n\t\t\t\t\t\t\t\t\t\t\t\terrorCallback(err);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\txhr.open('GET', path, true);\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\txhr.open('GET', fullPath + '/' + path, true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\txhr.send();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tload: loadAsset,\n\t\t\t\t\t\t};\n\t\t\t\t\t}());\n\t\t\t\t}\n\n\t\t\t\tif (e.data.type === 'loadAnimation') {\n\t\t\t\t\t_workerSelf.assetLoader.load(\n\t\t\t\t\t\te.data.path,\n\t\t\t\t\t\te.data.fullPath,\n\t\t\t\t\t\tfunction (data) {\n\t\t\t\t\t\t\t_workerSelf.dataManager.completeData(data);\n\t\t\t\t\t\t\t_workerSelf.postMessage({\n\t\t\t\t\t\t\t\tid: e.data.id,\n\t\t\t\t\t\t\t\tpayload: data,\n\t\t\t\t\t\t\t\tstatus: 'success',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t_workerSelf.postMessage({\n\t\t\t\t\t\t\t\tid: e.data.id,\n\t\t\t\t\t\t\t\tstatus: '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} else if (e.data.type === 'complete') {\n\t\t\t\t\tvar animation = e.data.animation;\n\t\t\t\t\t_workerSelf.dataManager.completeData(animation);\n\t\t\t\t\t_workerSelf.postMessage({\n\t\t\t\t\t\tid: e.data.id,\n\t\t\t\t\t\tpayload: animation,\n\t\t\t\t\t\tstatus: 'success',\n\t\t\t\t\t});\n\t\t\t\t} else if (e.data.type === 'loadData') {\n\t\t\t\t\t_workerSelf.assetLoader.load(\n\t\t\t\t\t\te.data.path,\n\t\t\t\t\t\te.data.fullPath,\n\t\t\t\t\t\tfunction (data) {\n\t\t\t\t\t\t\t_workerSelf.postMessage({\n\t\t\t\t\t\t\t\tid: e.data.id,\n\t\t\t\t\t\t\t\tpayload: data,\n\t\t\t\t\t\t\t\tstatus: 'success',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t_workerSelf.postMessage({\n\t\t\t\t\t\t\t\tid: e.data.id,\n\t\t\t\t\t\t\t\tstatus: '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}\n\t\t\t});\n\n\t\t\tworkerInstance.onmessage = function (event) {\n\t\t\t\tvar data = event.data;\n\t\t\t\tvar id = data.id;\n\t\t\t\tvar process = processes[id];\n\t\t\t\tprocesses[id] = null;\n\t\t\t\tif (data.status === 'success') {\n\t\t\t\t\tprocess.onComplete(data.payload);\n\t\t\t\t} else if (process.onError) {\n\t\t\t\t\tprocess.onError();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction createProcess(onComplete, onError) {\n\t\t_counterId += 1;\n\t\tvar id = 'processId_' + _counterId;\n\t\tprocesses[id] = {\n\t\t\tonComplete: onComplete,\n\t\t\tonError: onError,\n\t\t};\n\t\treturn id;\n\t}\n\n\tfunction loadAnimation(path, onComplete, onError) {\n\t\tsetupWorker();\n\t\tvar processId = createProcess(onComplete, onError);\n\t\tworkerInstance.postMessage({\n\t\t\ttype: 'loadAnimation',\n\t\t\tpath: path,\n\t\t\tfullPath: window.location.origin + window.location.pathname,\n\t\t\tid: processId,\n\t\t});\n\t}\n\n\tfunction loadData(path, onComplete, onError) {\n\t\tsetupWorker();\n\t\tvar processId = createProcess(onComplete, onError);\n\t\tworkerInstance.postMessage({\n\t\t\ttype: 'loadData',\n\t\t\tpath: path,\n\t\t\tfullPath: window.location.origin + window.location.pathname,\n\t\t\tid: processId,\n\t\t});\n\t}\n\n\tfunction completeAnimation(anim, onComplete, onError) {\n\t\tsetupWorker();\n\t\tvar processId = createProcess(onComplete, onError);\n\t\tworkerInstance.postMessage({\n\t\t\ttype: 'complete',\n\t\t\tanimation: anim,\n\t\t\tid: processId,\n\t\t});\n\t}\n\n\treturn {\n\t\tloadAnimation: loadAnimation,\n\t\tloadData: loadData,\n\t\tcompleteAnimation: completeAnimation,\n\t};\n}());\n\nconst ImagePreloader = (function () {\n\tvar proxyImage = (function () {\n\t\tvar canvas = createTag('canvas');\n\t\tcanvas.width = 1;\n\t\tcanvas.height = 1;\n\t\tvar ctx = canvas.getContext('2d');\n\t\tctx.fillStyle = 'rgba(0,0,0,0)';\n\t\tctx.fillRect(0, 0, 1, 1);\n\t\treturn canvas;\n\t}());\n\n\tfunction imageLoaded() {\n\t\tthis.loadedAssets += 1;\n\t\tif (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n\t\t\tif (this.imagesLoadedCb) {\n\t\t\t\tthis.imagesLoadedCb(null);\n\t\t\t}\n\t\t}\n\t}\n\tfunction footageLoaded() {\n\t\tthis.loadedFootagesCount += 1;\n\t\tif (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n\t\t\tif (this.imagesLoadedCb) {\n\t\t\t\tthis.imagesLoadedCb(null);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction getAssetsPath(assetData, assetsPath, originalPath) {\n\t\tvar path = '';\n\t\tif (assetData.e) {\n\t\t\tpath = assetData.p;\n\t\t} else if (assetsPath) {\n\t\t\tvar imagePath = assetData.p;\n\t\t\tif (imagePath.indexOf('images/') !== -1) {\n\t\t\t\timagePath = imagePath.split('/')[1];\n\t\t\t}\n\t\t\tpath = assetsPath + imagePath;\n\t\t} else {\n\t\t\tpath = originalPath;\n\t\t\tpath += assetData.u ? assetData.u : '';\n\t\t\tpath += assetData.p;\n\t\t}\n\t\treturn path;\n\t}\n\n\tfunction testImageLoaded(img) {\n\t\tvar _count = 0;\n\t\tvar intervalId = setInterval(function () {\n\t\t\tvar box = img.getBBox();\n\t\t\tif (box.width || _count > 500) {\n\t\t\t\tthis._imageLoaded();\n\t\t\t\tclearInterval(intervalId);\n\t\t\t}\n\t\t\t_count += 1;\n\t\t}.bind(this), 50);\n\t}\n\n\tfunction createImageData(assetData) {\n\t\tvar path = getAssetsPath(assetData, this.assetsPath, this.path);\n\t\tvar img = createNS('image');\n\t\tif (isSafari) {\n\t\t\tthis.testImageLoaded(img);\n\t\t} else {\n\t\t\timg.addEventListener('load', this._imageLoaded, false);\n\t\t}\n\t\timg.addEventListener('error', function () {\n\t\t\tob.img = proxyImage;\n\t\t\tthis._imageLoaded();\n\t\t}.bind(this), false);\n\t\timg.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\t\tif (this._elementHelper.append) {\n\t\t\tthis._elementHelper.append(img);\n\t\t} else {\n\t\t\tthis._elementHelper.appendChild(img);\n\t\t}\n\t\tvar ob = {\n\t\t\timg: img,\n\t\t\tassetData: assetData,\n\t\t};\n\t\treturn ob;\n\t}\n\n\tfunction createImgData(assetData) {\n\t\tvar path = getAssetsPath(assetData, this.assetsPath, this.path);\n\t\tvar img = createTag('img');\n\t\timg.crossOrigin = 'anonymous';\n\t\timg.addEventListener('load', this._imageLoaded, false);\n\t\timg.addEventListener('error', function () {\n\t\t\tob.img = proxyImage;\n\t\t\tthis._imageLoaded();\n\t\t}.bind(this), false);\n\t\timg.src = path;\n\t\tvar ob = {\n\t\t\timg: img,\n\t\t\tassetData: assetData,\n\t\t};\n\t\treturn ob;\n\t}\n\n\tfunction createFootageData(data) {\n\t\tvar ob = {\n\t\t\tassetData: data,\n\t\t};\n\t\tvar path = getAssetsPath(data, this.assetsPath, this.path);\n\t\tdataManager.loadData(path, function (footageData) {\n\t\t\tob.img = footageData;\n\t\t\tthis._footageLoaded();\n\t\t}.bind(this), function () {\n\t\t\tob.img = {};\n\t\t\tthis._footageLoaded();\n\t\t}.bind(this));\n\t\treturn ob;\n\t}\n\n\tfunction loadAssets(assets, cb) {\n\t\tthis.imagesLoadedCb = cb;\n\t\tvar i;\n\t\tvar len = assets.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (!assets[i].layers) {\n\t\t\t\tif (!assets[i].t || assets[i].t === 'seq') {\n\t\t\t\t\tthis.totalImages += 1;\n\t\t\t\t\tthis.images.push(this._createImageData(assets[i]));\n\t\t\t\t} else if (assets[i].t === 3) {\n\t\t\t\t\tthis.totalFootages += 1;\n\t\t\t\t\tthis.images.push(this.createFootageData(assets[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction setPath(path) {\n\t\tthis.path = path || '';\n\t}\n\n\tfunction setAssetsPath(path) {\n\t\tthis.assetsPath = path || '';\n\t}\n\n\tfunction getAsset(assetData) {\n\t\tvar i = 0;\n\t\tvar len = this.images.length;\n\t\twhile (i < len) {\n\t\t\tif (this.images[i].assetData === assetData) {\n\t\t\t\treturn this.images[i].img;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\treturn null;\n\t}\n\n\tfunction destroy() {\n\t\tthis.imagesLoadedCb = null;\n\t\tthis.images.length = 0;\n\t}\n\n\tfunction loadedImages() {\n\t\treturn this.totalImages === this.loadedAssets;\n\t}\n\n\tfunction loadedFootages() {\n\t\treturn this.totalFootages === this.loadedFootagesCount;\n\t}\n\n\tfunction setCacheType(type, elementHelper) {\n\t\tif (type === 'svg') {\n\t\t\tthis._elementHelper = elementHelper;\n\t\t\tthis._createImageData = this.createImageData.bind(this);\n\t\t} else {\n\t\t\tthis._createImageData = this.createImgData.bind(this);\n\t\t}\n\t}\n\n\tfunction ImagePreloaderFactory() {\n\t\tthis._imageLoaded = imageLoaded.bind(this);\n\t\tthis._footageLoaded = footageLoaded.bind(this);\n\t\tthis.testImageLoaded = testImageLoaded.bind(this);\n\t\tthis.createFootageData = createFootageData.bind(this);\n\t\tthis.assetsPath = '';\n\t\tthis.path = '';\n\t\tthis.totalImages = 0;\n\t\tthis.totalFootages = 0;\n\t\tthis.loadedAssets = 0;\n\t\tthis.loadedFootagesCount = 0;\n\t\tthis.imagesLoadedCb = null;\n\t\tthis.images = [];\n\t}\n\n\tImagePreloaderFactory.prototype = {\n\t\tloadAssets: loadAssets,\n\t\tsetAssetsPath: setAssetsPath,\n\t\tsetPath: setPath,\n\t\tloadedImages: loadedImages,\n\t\tloadedFootages: loadedFootages,\n\t\tdestroy: destroy,\n\t\tgetAsset: getAsset,\n\t\tcreateImgData: createImgData,\n\t\tcreateImageData: createImageData,\n\t\timageLoaded: imageLoaded,\n\t\tfootageLoaded: footageLoaded,\n\t\tsetCacheType: setCacheType,\n\t};\n\n\treturn ImagePreloaderFactory;\n}());\n\nfunction BaseEvent() {}\nBaseEvent.prototype = {\n\ttriggerEvent: function (eventName, args) {\n\t\tif (this._cbs[eventName]) {\n\t\t\tvar callbacks = this._cbs[eventName];\n\t\t\tfor (var i = 0; i < callbacks.length; i += 1) {\n\t\t\t\tcallbacks[i](args);\n\t\t\t}\n\t\t}\n\t},\n\taddEventListener: function (eventName, callback) {\n\t\tif (!this._cbs[eventName]) {\n\t\t\tthis._cbs[eventName] = [];\n\t\t}\n\t\tthis._cbs[eventName].push(callback);\n\n\t\treturn function () {\n\t\t\tthis.removeEventListener(eventName, callback);\n\t\t}.bind(this);\n\t},\n\tremoveEventListener: function (eventName, callback) {\n\t\tif (!callback) {\n\t\t\tthis._cbs[eventName] = null;\n\t\t} else if (this._cbs[eventName]) {\n\t\t\tvar i = 0;\n\t\t\tvar len = this._cbs[eventName].length;\n\t\t\twhile (i < len) {\n\t\t\t\tif (this._cbs[eventName][i] === callback) {\n\t\t\t\t\tthis._cbs[eventName].splice(i, 1);\n\t\t\t\t\ti -= 1;\n\t\t\t\t\tlen -= 1;\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tif (!this._cbs[eventName].length) {\n\t\t\t\tthis._cbs[eventName] = null;\n\t\t\t}\n\t\t}\n\t},\n};\n\nconst markerParser = (\n\n\tfunction () {\n\t\tfunction parsePayloadLines(payload) {\n\t\t\tvar lines = payload.split('\\r\\n');\n\t\t\tvar keys = {};\n\t\t\tvar line;\n\t\t\tvar keysCount = 0;\n\t\t\tfor (var i = 0; i < lines.length; i += 1) {\n\t\t\t\tline = lines[i].split(':');\n\t\t\t\tif (line.length === 2) {\n\t\t\t\t\tkeys[line[0]] = line[1].trim();\n\t\t\t\t\tkeysCount += 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (keysCount === 0) {\n\t\t\t\tthrow new Error();\n\t\t\t}\n\t\t\treturn keys;\n\t\t}\n\n\t\treturn function (_markers) {\n\t\t\tvar markers = [];\n\t\t\tfor (var i = 0; i < _markers.length; i += 1) {\n\t\t\t\tvar _marker = _markers[i];\n\t\t\t\tvar markerData = {\n\t\t\t\t\ttime: _marker.tm,\n\t\t\t\t\tduration: _marker.dr,\n\t\t\t\t};\n\t\t\t\ttry {\n\t\t\t\t\tmarkerData.payload = JSON.parse(_markers[i].cm);\n\t\t\t\t} catch (_) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tmarkerData.payload = parsePayloadLines(_markers[i].cm);\n\t\t\t\t\t} catch (__) {\n\t\t\t\t\t\tmarkerData.payload = {\n\t\t\t\t\t\t\tname: _markers[i].cm,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tmarkers.push(markerData);\n\t\t\t}\n\t\t\treturn markers;\n\t\t};\n\t}());\n\nconst ProjectInterface = (function () {\n\tfunction registerComposition(comp) {\n\t\tthis.compositions.push(comp);\n\t}\n\n\treturn function () {\n\t\tfunction _thisProjectFunction(name) {\n\t\t\tvar i = 0;\n\t\t\tvar len = this.compositions.length;\n\t\t\twhile (i < len) {\n\t\t\t\tif (this.compositions[i].data && this.compositions[i].data.nm === name) {\n\t\t\t\t\tif (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n\t\t\t\t\t\tthis.compositions[i].prepareFrame(this.currentFrame);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.compositions[i].compInterface;\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\t_thisProjectFunction.compositions = [];\n\t\t_thisProjectFunction.currentFrame = 0;\n\n\t\t_thisProjectFunction.registerComposition = registerComposition;\n\n\t\treturn _thisProjectFunction;\n\t};\n}());\n\nconst renderers = {};\n\nconst registerRenderer = (key, value) => {\n\trenderers[key] = value;\n};\n\nfunction getRenderer(key) {\n\treturn renderers[key];\n}\n\nconst AnimationItem = function () {\n\tthis._cbs = [];\n\tthis.name = '';\n\tthis.path = '';\n\tthis.isLoaded = false;\n\tthis.currentFrame = 0;\n\tthis.currentRawFrame = 0;\n\tthis.firstFrame = 0;\n\tthis.totalFrames = 0;\n\tthis.frameRate = 0;\n\tthis.frameMult = 0;\n\tthis.playSpeed = 1;\n\tthis.playDirection = 1;\n\tthis.playCount = 0;\n\tthis.animationData = {};\n\tthis.assets = [];\n\tthis.isPaused = true;\n\tthis.autoplay = false;\n\tthis.loop = true;\n\tthis.renderer = null;\n\tthis.animationID = createElementID();\n\tthis.assetsPath = '';\n\tthis.timeCompleted = 0;\n\tthis.segmentPos = 0;\n\tthis.isSubframeEnabled = getSubframeEnabled();\n\tthis.segments = [];\n\tthis._idle = true;\n\tthis._completedLoop = false;\n\tthis.projectInterface = ProjectInterface();\n\tthis.imagePreloader = new ImagePreloader();\n\tthis.audioController = audioControllerFactory();\n\tthis.markers = [];\n\tthis.configAnimation = this.configAnimation.bind(this);\n\tthis.onSetupError = this.onSetupError.bind(this);\n\tthis.onSegmentComplete = this.onSegmentComplete.bind(this);\n\tthis.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n};\n\nextendPrototype([BaseEvent], AnimationItem);\n\nAnimationItem.prototype.setParams = function (params) {\n\tif (params.wrapper || params.container) {\n\t\tthis.wrapper = params.wrapper || params.container;\n\t}\n\tvar animType = 'svg';\n\tif (params.animType) {\n\t\tanimType = params.animType;\n\t} else if (params.renderer) {\n\t\tanimType = params.renderer;\n\t}\n\tconst RendererClass = getRenderer(animType);\n\tthis.renderer = new RendererClass(this, params.rendererSettings);\n\tthis.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n\tthis.renderer.setProjectInterface(this.projectInterface);\n\tthis.animType = animType;\n\tif (params.loop === ''\n\t\t|| params.loop === null\n\t\t|| params.loop === undefined\n\t\t|| params.loop === true) {\n\t\tthis.loop = true;\n\t} else if (params.loop === false) {\n\t\tthis.loop = false;\n\t} else {\n\t\tthis.loop = parseInt(params.loop, 10);\n\t}\n\tthis.autoplay = 'autoplay' in params ? params.autoplay : true;\n\tthis.name = params.name ? params.name : '';\n\tthis.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n\tthis.assetsPath = params.assetsPath;\n\tthis.initialSegment = params.initialSegment;\n\tif (params.audioFactory) {\n\t\tthis.audioController.setAudioFactory(params.audioFactory);\n\t}\n\tif (params.animationData) {\n\t\tthis.setupAnimation(params.animationData);\n\t} else if (params.path) {\n\t\tif (params.path.lastIndexOf('\\\\') !== -1) {\n\t\t\tthis.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n\t\t} else {\n\t\t\tthis.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n\t\t}\n\t\tthis.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n\t\tthis.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n\t\tdataManager.loadAnimation(\n\t\t\tparams.path,\n\t\t\tthis.configAnimation,\n\t\t\tthis.onSetupError\n\t\t);\n\t}\n};\n\nAnimationItem.prototype.onSetupError = function () {\n\tthis.trigger('data_failed');\n};\n\nAnimationItem.prototype.setupAnimation = function (data) {\n\tdataManager.completeAnimation(\n\t\tdata,\n\t\tthis.configAnimation\n\t);\n};\n\nAnimationItem.prototype.setData = function (wrapper, animationData) {\n\tif (animationData) {\n\t\tif (typeof animationData !== 'object') {\n\t\t\tanimationData = JSON.parse(animationData);\n\t\t}\n\t}\n\tvar params = {\n\t\twrapper: wrapper,\n\t\tanimationData: animationData,\n\t};\n\tvar wrapperAttributes = wrapper.attributes;\n\n\tparams.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n\t\t? wrapperAttributes.getNamedItem('data-animation-path').value\n\t\t: wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n\t\t\t? wrapperAttributes.getNamedItem('data-bm-path').value\n\t\t\t: wrapperAttributes.getNamedItem('bm-path')\n\t\t\t\t? wrapperAttributes.getNamedItem('bm-path').value\n\t\t\t\t: '';\n\tparams.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n\t\t? wrapperAttributes.getNamedItem('data-anim-type').value\n\t\t: wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n\t\t\t? wrapperAttributes.getNamedItem('data-bm-type').value\n\t\t\t: wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n\t\t\t\t? wrapperAttributes.getNamedItem('bm-type').value\n\t\t\t\t: wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n\t\t\t\t\t? wrapperAttributes.getNamedItem('data-bm-renderer').value\n\t\t\t\t\t: wrapperAttributes.getNamedItem('bm-renderer')\n\t\t\t\t\t\t? wrapperAttributes.getNamedItem('bm-renderer').value\n\t\t\t\t\t\t: 'canvas';\n\n\tvar loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n\t\t? wrapperAttributes.getNamedItem('data-anim-loop').value\n\t\t: wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n\t\t\t? wrapperAttributes.getNamedItem('data-bm-loop').value\n\t\t\t: wrapperAttributes.getNamedItem('bm-loop')\n\t\t\t\t? wrapperAttributes.getNamedItem('bm-loop').value\n\t\t\t\t: '';\n\tif (loop === 'false') {\n\t\tparams.loop = false;\n\t} else if (loop === 'true') {\n\t\tparams.loop = true;\n\t} else if (loop !== '') {\n\t\tparams.loop = parseInt(loop, 10);\n\t}\n\tvar autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n\t\t? wrapperAttributes.getNamedItem('data-anim-autoplay').value\n\t\t: wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n\t\t\t? wrapperAttributes.getNamedItem('data-bm-autoplay').value\n\t\t\t: wrapperAttributes.getNamedItem('bm-autoplay')\n\t\t\t\t? wrapperAttributes.getNamedItem('bm-autoplay').value\n\t\t\t\t: true;\n\tparams.autoplay = autoplay !== 'false';\n\n\tparams.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n\t\t? wrapperAttributes.getNamedItem('data-name').value\n\t\t: wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n\t\t\t? wrapperAttributes.getNamedItem('data-bm-name').value\n\t\t\t: wrapperAttributes.getNamedItem('bm-name')\n\t\t\t\t? wrapperAttributes.getNamedItem('bm-name').value\n\t\t\t\t: '';\n\tvar prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n\t\t? wrapperAttributes.getNamedItem('data-anim-prerender').value\n\t\t: wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n\t\t\t? wrapperAttributes.getNamedItem('data-bm-prerender').value\n\t\t\t: wrapperAttributes.getNamedItem('bm-prerender')\n\t\t\t\t? wrapperAttributes.getNamedItem('bm-prerender').value\n\t\t\t\t: '';\n\n\tif (prerender === 'false') {\n\t\tparams.prerender = false;\n\t}\n\tthis.setParams(params);\n};\n\nAnimationItem.prototype.includeLayers = function (data) {\n\tif (data.op > this.animationData.op) {\n\t\tthis.animationData.op = data.op;\n\t\tthis.totalFrames = Math.floor(data.op - this.animationData.ip);\n\t}\n\tvar layers = this.animationData.layers;\n\tvar i;\n\tvar len = layers.length;\n\tvar newLayers = data.layers;\n\tvar j;\n\tvar jLen = newLayers.length;\n\tfor (j = 0; j < jLen; j += 1) {\n\t\ti = 0;\n\t\twhile (i < len) {\n\t\t\tif (layers[i].id === newLayers[j].id) {\n\t\t\t\tlayers[i] = newLayers[j];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t}\n\tif (data.chars || data.fonts) {\n\t\tthis.renderer.globalData.fontManager.addChars(data.chars);\n\t\tthis.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n\t}\n\tif (data.assets) {\n\t\tlen = data.assets.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.animationData.assets.push(data.assets[i]);\n\t\t}\n\t}\n\tthis.animationData.__complete = false;\n\tdataManager.completeAnimation(\n\t\tthis.animationData,\n\t\tthis.onSegmentComplete\n\t);\n};\n\nAnimationItem.prototype.onSegmentComplete = function (data) {\n\tthis.animationData = data;\n\tvar expressionsPlugin = getExpressionsPlugin();\n\tif (expressionsPlugin) {\n\t\texpressionsPlugin.initExpressions(this);\n\t}\n\tthis.loadNextSegment();\n};\n\nAnimationItem.prototype.loadNextSegment = function () {\n\tvar segments = this.animationData.segments;\n\tif (!segments || segments.length === 0 || !this.autoloadSegments) {\n\t\tthis.trigger('data_ready');\n\t\tthis.timeCompleted = this.totalFrames;\n\t\treturn;\n\t}\n\tvar segment = segments.shift();\n\tthis.timeCompleted = segment.time * this.frameRate;\n\tvar segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n\tthis.segmentPos += 1;\n\tdataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n\t\tthis.trigger('data_failed');\n\t}.bind(this));\n};\n\nAnimationItem.prototype.loadSegments = function () {\n\tvar segments = this.animationData.segments;\n\tif (!segments) {\n\t\tthis.timeCompleted = this.totalFrames;\n\t}\n\tthis.loadNextSegment();\n};\n\nAnimationItem.prototype.imagesLoaded = function () {\n\tthis.trigger('loaded_images');\n\tthis.checkLoaded();\n};\n\nAnimationItem.prototype.preloadImages = function () {\n\tthis.imagePreloader.setAssetsPath(this.assetsPath);\n\tthis.imagePreloader.setPath(this.path);\n\tthis.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n};\n\nAnimationItem.prototype.configAnimation = function (animData) {\n\tif (!this.renderer) {\n\t\treturn;\n\t}\n\ttry {\n\t\tthis.animationData = animData;\n\t\tif (this.initialSegment) {\n\t\t\tthis.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n\t\t\tthis.firstFrame = Math.round(this.initialSegment[0]);\n\t\t} else {\n\t\t\tthis.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n\t\t\tthis.firstFrame = Math.round(this.animationData.ip);\n\t\t}\n\t\tthis.renderer.configAnimation(animData);\n\t\tif (!animData.assets) {\n\t\t\tanimData.assets = [];\n\t\t}\n\n\t\tthis.assets = this.animationData.assets;\n\t\tthis.frameRate = this.animationData.fr;\n\t\tthis.frameMult = this.animationData.fr / 1000;\n\t\tthis.renderer.searchExtraCompositions(animData.assets);\n\t\tthis.markers = markerParser(animData.markers || []);\n\t\tthis.trigger('config_ready');\n\t\tthis.preloadImages();\n\t\tthis.loadSegments();\n\t\tthis.updaFrameModifier();\n\t\tthis.waitForFontsLoaded();\n\t\tif (this.isPaused) {\n\t\t\tthis.audioController.pause();\n\t\t}\n\t} catch (error) {\n\t\tthis.triggerConfigError(error);\n\t}\n};\n\nAnimationItem.prototype.waitForFontsLoaded = function () {\n\tif (!this.renderer) {\n\t\treturn;\n\t}\n\tif (this.renderer.globalData.fontManager.isLoaded) {\n\t\tthis.checkLoaded();\n\t} else {\n\t\tsetTimeout(this.waitForFontsLoaded.bind(this), 20);\n\t}\n};\n\nAnimationItem.prototype.checkLoaded = function () {\n\tif (!this.isLoaded\n\t\t&& this.renderer.globalData.fontManager.isLoaded\n\t\t&& (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas')\n\t\t&& (this.imagePreloader.loadedFootages())\n\t) {\n\t\tthis.isLoaded = true;\n\t\tvar expressionsPlugin = getExpressionsPlugin();\n\t\tif (expressionsPlugin) {\n\t\t\texpressionsPlugin.initExpressions(this);\n\t\t}\n\t\tthis.renderer.initItems();\n\t\tsetTimeout(function () {\n\t\t\tthis.trigger('DOMLoaded');\n\t\t}.bind(this), 0);\n\t\tthis.gotoFrame();\n\t\tif (this.autoplay) {\n\t\t\tthis.play();\n\t\t}\n\t}\n};\n\nAnimationItem.prototype.resize = function () {\n\tthis.renderer.updateContainerSize();\n};\n\nAnimationItem.prototype.setSubframe = function (flag) {\n\tthis.isSubframeEnabled = !!flag;\n};\n\nAnimationItem.prototype.gotoFrame = function () {\n\tthis.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n\tif (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n\t\tthis.currentFrame = this.timeCompleted;\n\t}\n\tthis.trigger('enterFrame');\n\tthis.renderFrame();\n\tthis.trigger('drawnFrame');\n};\n\nAnimationItem.prototype.renderFrame = function () {\n\tif (this.isLoaded === false || !this.renderer) {\n\t\treturn;\n\t}\n\ttry {\n\t\tthis.renderer.renderFrame(this.currentFrame + this.firstFrame);\n\t} catch (error) {\n\t\tthis.triggerRenderFrameError(error);\n\t}\n};\n\nAnimationItem.prototype.play = function (name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tif (this.isPaused === true) {\n\t\tthis.isPaused = false;\n\t\tthis.trigger('_pause');\n\t\tthis.audioController.resume();\n\t\tif (this._idle) {\n\t\t\tthis._idle = false;\n\t\t\tthis.trigger('_active');\n\t\t}\n\t}\n};\n\nAnimationItem.prototype.pause = function (name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tif (this.isPaused === false) {\n\t\tthis.isPaused = true;\n\t\tthis.trigger('_play');\n\t\tthis._idle = true;\n\t\tthis.trigger('_idle');\n\t\tthis.audioController.pause();\n\t}\n};\n\nAnimationItem.prototype.togglePause = function (name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tif (this.isPaused === true) {\n\t\tthis.play();\n\t} else {\n\t\tthis.pause();\n\t}\n};\n\nAnimationItem.prototype.stop = function (name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tthis.pause();\n\tthis.playCount = 0;\n\tthis._completedLoop = false;\n\tthis.setCurrentRawFrameValue(0);\n};\n\nAnimationItem.prototype.getMarkerData = function (markerName) {\n\tvar marker;\n\tfor (var i = 0; i < this.markers.length; i += 1) {\n\t\tmarker = this.markers[i];\n\t\tif (marker.payload && marker.payload.name === markerName) {\n\t\t\treturn marker;\n\t\t}\n\t}\n\treturn null;\n};\n\nAnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tvar numValue = Number(value);\n\tif (isNaN(numValue)) {\n\t\tvar marker = this.getMarkerData(value);\n\t\tif (marker) {\n\t\t\tthis.goToAndStop(marker.time, true);\n\t\t}\n\t} else if (isFrame) {\n\t\tthis.setCurrentRawFrameValue(value);\n\t} else {\n\t\tthis.setCurrentRawFrameValue(value * this.frameModifier);\n\t}\n\tthis.pause();\n};\n\nAnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tvar numValue = Number(value);\n\tif (isNaN(numValue)) {\n\t\tvar marker = this.getMarkerData(value);\n\t\tif (marker) {\n\t\t\tif (!marker.duration) {\n\t\t\t\tthis.goToAndStop(marker.time, true);\n\t\t\t} else {\n\t\t\t\tthis.playSegments([marker.time, marker.time + marker.duration], true);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tthis.goToAndStop(numValue, isFrame, name);\n\t}\n\tthis.play();\n};\n\nAnimationItem.prototype.advanceTime = function (value) {\n\tif (this.isPaused === true || this.isLoaded === false) {\n\t\treturn;\n\t}\n\tvar nextValue = this.currentRawFrame + value * this.frameModifier;\n\tvar _isComplete = false;\n\t// Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n\t// 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\tif (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n\t\tif (!this.loop || this.playCount === this.loop) {\n\t\t\tif (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n\t\t\t\t_isComplete = true;\n\t\t\t\tnextValue = this.totalFrames - 1;\n\t\t\t}\n\t\t} else if (nextValue >= this.totalFrames) {\n\t\t\tthis.playCount += 1;\n\t\t\tif (!this.checkSegments(nextValue % this.totalFrames)) {\n\t\t\t\tthis.setCurrentRawFrameValue(nextValue % this.totalFrames);\n\t\t\t\tthis._completedLoop = true;\n\t\t\t\tthis.trigger('loopComplete');\n\t\t\t}\n\t\t} else {\n\t\t\tthis.setCurrentRawFrameValue(nextValue);\n\t\t}\n\t} else if (nextValue < 0) {\n\t\tif (!this.checkSegments(nextValue % this.totalFrames)) {\n\t\t\tif (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) { // eslint-disable-line no-plusplus\n\t\t\t\tthis.setCurrentRawFrameValue(this.totalFrames + (nextValue % this.totalFrames));\n\t\t\t\tif (!this._completedLoop) {\n\t\t\t\t\tthis._completedLoop = true;\n\t\t\t\t} else {\n\t\t\t\t\tthis.trigger('loopComplete');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t_isComplete = true;\n\t\t\t\tnextValue = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tthis.setCurrentRawFrameValue(nextValue);\n\t}\n\tif (_isComplete) {\n\t\tthis.setCurrentRawFrameValue(nextValue);\n\t\tthis.pause();\n\t\tthis.trigger('complete');\n\t}\n};\n\nAnimationItem.prototype.adjustSegment = function (arr, offset) {\n\tthis.playCount = 0;\n\tif (arr[1] < arr[0]) {\n\t\tif (this.frameModifier > 0) {\n\t\t\tif (this.playSpeed < 0) {\n\t\t\t\tthis.setSpeed(-this.playSpeed);\n\t\t\t} else {\n\t\t\t\tthis.setDirection(-1);\n\t\t\t}\n\t\t}\n\t\tthis.totalFrames = arr[0] - arr[1];\n\t\tthis.timeCompleted = this.totalFrames;\n\t\tthis.firstFrame = arr[1];\n\t\tthis.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n\t} else if (arr[1] > arr[0]) {\n\t\tif (this.frameModifier < 0) {\n\t\t\tif (this.playSpeed < 0) {\n\t\t\t\tthis.setSpeed(-this.playSpeed);\n\t\t\t} else {\n\t\t\t\tthis.setDirection(1);\n\t\t\t}\n\t\t}\n\t\tthis.totalFrames = arr[1] - arr[0];\n\t\tthis.timeCompleted = this.totalFrames;\n\t\tthis.firstFrame = arr[0];\n\t\tthis.setCurrentRawFrameValue(0.001 + offset);\n\t}\n\tthis.trigger('segmentStart');\n};\nAnimationItem.prototype.setSegment = function (init, end) {\n\tvar pendingFrame = -1;\n\tif (this.isPaused) {\n\t\tif (this.currentRawFrame + this.firstFrame < init) {\n\t\t\tpendingFrame = init;\n\t\t} else if (this.currentRawFrame + this.firstFrame > end) {\n\t\t\tpendingFrame = end - init;\n\t\t}\n\t}\n\n\tthis.firstFrame = init;\n\tthis.totalFrames = end - init;\n\tthis.timeCompleted = this.totalFrames;\n\tif (pendingFrame !== -1) {\n\t\tthis.goToAndStop(pendingFrame, true);\n\t}\n};\n\nAnimationItem.prototype.playSegments = function (arr, forceFlag) {\n\tif (forceFlag) {\n\t\tthis.segments.length = 0;\n\t}\n\tif (typeof arr[0] === 'object') {\n\t\tvar i;\n\t\tvar len = arr.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.segments.push(arr[i]);\n\t\t}\n\t} else {\n\t\tthis.segments.push(arr);\n\t}\n\tif (this.segments.length && forceFlag) {\n\t\tthis.adjustSegment(this.segments.shift(), 0);\n\t}\n\tif (this.isPaused) {\n\t\tthis.play();\n\t}\n};\n\nAnimationItem.prototype.resetSegments = function (forceFlag) {\n\tthis.segments.length = 0;\n\tthis.segments.push([this.animationData.ip, this.animationData.op]);\n\tif (forceFlag) {\n\t\tthis.checkSegments(0);\n\t}\n};\nAnimationItem.prototype.checkSegments = function (offset) {\n\tif (this.segments.length) {\n\t\tthis.adjustSegment(this.segments.shift(), offset);\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nAnimationItem.prototype.destroy = function (name) {\n\tif ((name && this.name !== name) || !this.renderer) {\n\t\treturn;\n\t}\n\tthis.renderer.destroy();\n\tthis.imagePreloader.destroy();\n\tthis.trigger('destroy');\n\tthis._cbs = null;\n\tthis.onEnterFrame = null;\n\tthis.onLoopComplete = null;\n\tthis.onComplete = null;\n\tthis.onSegmentStart = null;\n\tthis.onDestroy = null;\n\tthis.renderer = null;\n\tthis.renderer = null;\n\tthis.imagePreloader = null;\n\tthis.projectInterface = null;\n};\n\nAnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n\tthis.currentRawFrame = value;\n\tthis.gotoFrame();\n};\n\nAnimationItem.prototype.setSpeed = function (val) {\n\tthis.playSpeed = val;\n\tthis.updaFrameModifier();\n};\n\nAnimationItem.prototype.setDirection = function (val) {\n\tthis.playDirection = val < 0 ? -1 : 1;\n\tthis.updaFrameModifier();\n};\n\nAnimationItem.prototype.setVolume = function (val, name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tthis.audioController.setVolume(val);\n};\n\nAnimationItem.prototype.getVolume = function () {\n\treturn this.audioController.getVolume();\n};\n\nAnimationItem.prototype.mute = function (name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tthis.audioController.mute();\n};\n\nAnimationItem.prototype.unmute = function (name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tthis.audioController.unmute();\n};\n\nAnimationItem.prototype.updaFrameModifier = function () {\n\tthis.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n\tthis.audioController.setRate(this.playSpeed * this.playDirection);\n};\n\nAnimationItem.prototype.getPath = function () {\n\treturn this.path;\n};\n\nAnimationItem.prototype.getAssetsPath = function (assetData) {\n\tvar path = '';\n\tif (assetData.e) {\n\t\tpath = assetData.p;\n\t} else if (this.assetsPath) {\n\t\tvar imagePath = assetData.p;\n\t\tif (imagePath.indexOf('images/') !== -1) {\n\t\t\timagePath = imagePath.split('/')[1];\n\t\t}\n\t\tpath = this.assetsPath + imagePath;\n\t} else {\n\t\tpath = this.path;\n\t\tpath += assetData.u ? assetData.u : '';\n\t\tpath += assetData.p;\n\t}\n\treturn path;\n};\n\nAnimationItem.prototype.getAssetData = function (id) {\n\tvar i = 0;\n\tvar len = this.assets.length;\n\twhile (i < len) {\n\t\tif (id === this.assets[i].id) {\n\t\t\treturn this.assets[i];\n\t\t}\n\t\ti += 1;\n\t}\n\treturn null;\n};\n\nAnimationItem.prototype.hide = function () {\n\tthis.renderer.hide();\n};\n\nAnimationItem.prototype.show = function () {\n\tthis.renderer.show();\n};\n\nAnimationItem.prototype.getDuration = function (isFrame) {\n\treturn isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n};\n\nAnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n\ttry {\n\t\tvar element = this.renderer.getElementByPath(path);\n\t\telement.updateDocumentData(documentData, index);\n\t} catch (error) {\n\t\t// TODO: decide how to handle catch case\n\t}\n};\n\nAnimationItem.prototype.trigger = function (name) {\n\tif (this._cbs && this._cbs[name]) {\n\t\tswitch (name) {\n\t\t\tcase 'enterFrame':\n\t\t\t\tthis.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n\t\t\t\tbreak;\n\t\t\tcase 'drawnFrame':\n\t\t\t\tthis.drawnFrameEvent.currentTime = this.currentFrame;\n\t\t\t\tthis.drawnFrameEvent.totalTime = this.totalFrames;\n\t\t\t\tthis.drawnFrameEvent.direction = this.frameModifier;\n\t\t\t\tthis.triggerEvent(name, this.drawnFrameEvent);\n\t\t\t\tbreak;\n\t\t\tcase 'loopComplete':\n\t\t\t\tthis.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n\t\t\t\tbreak;\n\t\t\tcase 'complete':\n\t\t\t\tthis.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n\t\t\t\tbreak;\n\t\t\tcase 'segmentStart':\n\t\t\t\tthis.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n\t\t\t\tbreak;\n\t\t\tcase 'destroy':\n\t\t\t\tthis.triggerEvent(name, new BMDestroyEvent(name, this));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis.triggerEvent(name);\n\t\t}\n\t}\n\tif (name === 'enterFrame' && this.onEnterFrame) {\n\t\tthis.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n\t}\n\tif (name === 'loopComplete' && this.onLoopComplete) {\n\t\tthis.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n\t}\n\tif (name === 'complete' && this.onComplete) {\n\t\tthis.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n\t}\n\tif (name === 'segmentStart' && this.onSegmentStart) {\n\t\tthis.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n\t}\n\tif (name === 'destroy' && this.onDestroy) {\n\t\tthis.onDestroy.call(this, new BMDestroyEvent(name, this));\n\t}\n};\n\nAnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n\tvar error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n\tthis.triggerEvent('error', error);\n\n\tif (this.onError) {\n\t\tthis.onError.call(this, error);\n\t}\n};\n\nAnimationItem.prototype.triggerConfigError = function (nativeError) {\n\tvar error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n\tthis.triggerEvent('error', error);\n\n\tif (this.onError) {\n\t\tthis.onError.call(this, error);\n\t}\n};\n\nconst animationManager = (function () {\n\tvar moduleOb = {};\n\tvar registeredAnimations = [];\n\tvar initTime = 0;\n\tvar len = 0;\n\tvar playingAnimationsNum = 0;\n\tvar _stopped = true;\n\tvar _isFrozen = false;\n\n\tfunction removeElement(ev) {\n\t\tvar i = 0;\n\t\tvar animItem = ev.target;\n\t\twhile (i < len) {\n\t\t\tif (registeredAnimations[i].animation === animItem) {\n\t\t\t\tregisteredAnimations.splice(i, 1);\n\t\t\t\ti -= 1;\n\t\t\t\tlen -= 1;\n\t\t\t\tif (!animItem.isPaused) {\n\t\t\t\t\tsubtractPlayingCount();\n\t\t\t\t}\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t}\n\n\tfunction registerAnimation(element, animationData) {\n\t\tif (!element) {\n\t\t\treturn null;\n\t\t}\n\t\tvar i = 0;\n\t\twhile (i < len) {\n\t\t\tif (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n\t\t\t\treturn registeredAnimations[i].animation;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\tvar animItem = new AnimationItem();\n\t\tsetupAnimation(animItem, element);\n\t\tanimItem.setData(element, animationData);\n\t\treturn animItem;\n\t}\n\n\tfunction getRegisteredAnimations() {\n\t\tvar i;\n\t\tvar lenAnims = registeredAnimations.length;\n\t\tvar animations = [];\n\t\tfor (i = 0; i < lenAnims; i += 1) {\n\t\t\tanimations.push(registeredAnimations[i].animation);\n\t\t}\n\t\treturn animations;\n\t}\n\n\tfunction addPlayingCount() {\n\t\tplayingAnimationsNum += 1;\n\t\tactivate();\n\t}\n\n\tfunction subtractPlayingCount() {\n\t\tplayingAnimationsNum -= 1;\n\t}\n\n\tfunction setupAnimation(animItem, element) {\n\t\tanimItem.addEventListener('destroy', removeElement);\n\t\tanimItem.addEventListener('_active', addPlayingCount);\n\t\tanimItem.addEventListener('_idle', subtractPlayingCount);\n\t\tregisteredAnimations.push({ elem: element, animation: animItem });\n\t\tlen += 1;\n\t}\n\n\tfunction loadAnimation(params) {\n\t\tvar animItem = new AnimationItem();\n\t\tsetupAnimation(animItem, null);\n\t\tanimItem.setParams(params);\n\t\treturn animItem;\n\t}\n\n\tfunction setSpeed(val, animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.setSpeed(val, animation);\n\t\t}\n\t}\n\n\tfunction setDirection(val, animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.setDirection(val, animation);\n\t\t}\n\t}\n\n\tfunction play(animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.play(animation);\n\t\t}\n\t}\n\tfunction resume(nowTime) {\n\t\tvar elapsedTime = nowTime - initTime;\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.advanceTime(elapsedTime);\n\t\t}\n\t\tinitTime = nowTime;\n\t\tif (playingAnimationsNum && !_isFrozen) {\n\t\t\twindow.requestAnimationFrame(resume);\n\t\t} else {\n\t\t\t_stopped = true;\n\t\t}\n\t}\n\n\tfunction first(nowTime) {\n\t\tinitTime = nowTime;\n\t\twindow.requestAnimationFrame(resume);\n\t}\n\n\tfunction pause(animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.pause(animation);\n\t\t}\n\t}\n\n\tfunction goToAndStop(value, isFrame, animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n\t\t}\n\t}\n\n\tfunction stop(animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.stop(animation);\n\t\t}\n\t}\n\n\tfunction togglePause(animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.togglePause(animation);\n\t\t}\n\t}\n\n\tfunction destroy(animation) {\n\t\tvar i;\n\t\tfor (i = (len - 1); i >= 0; i -= 1) {\n\t\t\tregisteredAnimations[i].animation.destroy(animation);\n\t\t}\n\t}\n\n\tfunction searchAnimations(animationData, standalone, renderer) {\n\t\tvar animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')),\n\t\t\t[].slice.call(document.getElementsByClassName('bodymovin')));\n\t\tvar i;\n\t\tvar lenAnims = animElements.length;\n\t\tfor (i = 0; i < lenAnims; i += 1) {\n\t\t\tif (renderer) {\n\t\t\t\tanimElements[i].setAttribute('data-bm-type', renderer);\n\t\t\t}\n\t\t\tregisterAnimation(animElements[i], animationData);\n\t\t}\n\t\tif (standalone && lenAnims === 0) {\n\t\t\tif (!renderer) {\n\t\t\t\trenderer = 'svg';\n\t\t\t}\n\t\t\tvar body = document.getElementsByTagName('body')[0];\n\t\t\tbody.innerText = '';\n\t\t\tvar div = createTag('div');\n\t\t\tdiv.style.width = '100%';\n\t\t\tdiv.style.height = '100%';\n\t\t\tdiv.setAttribute('data-bm-type', renderer);\n\t\t\tbody.appendChild(div);\n\t\t\tregisterAnimation(div, animationData);\n\t\t}\n\t}\n\n\tfunction resize() {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.resize();\n\t\t}\n\t}\n\n\tfunction activate() {\n\t\tif (!_isFrozen && playingAnimationsNum) {\n\t\t\tif (_stopped) {\n\t\t\t\twindow.requestAnimationFrame(first);\n\t\t\t\t_stopped = false;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction freeze() {\n\t\t_isFrozen = true;\n\t}\n\n\tfunction unfreeze() {\n\t\t_isFrozen = false;\n\t\tactivate();\n\t}\n\n\tfunction setVolume(val, animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.setVolume(val, animation);\n\t\t}\n\t}\n\n\tfunction mute(animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.mute(animation);\n\t\t}\n\t}\n\n\tfunction unmute(animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.unmute(animation);\n\t\t}\n\t}\n\n\tmoduleOb.registerAnimation = registerAnimation;\n\tmoduleOb.loadAnimation = loadAnimation;\n\tmoduleOb.setSpeed = setSpeed;\n\tmoduleOb.setDirection = setDirection;\n\tmoduleOb.play = play;\n\tmoduleOb.pause = pause;\n\tmoduleOb.stop = stop;\n\tmoduleOb.togglePause = togglePause;\n\tmoduleOb.searchAnimations = searchAnimations;\n\tmoduleOb.resize = resize;\n\t// moduleOb.start = start;\n\tmoduleOb.goToAndStop = goToAndStop;\n\tmoduleOb.destroy = destroy;\n\tmoduleOb.freeze = freeze;\n\tmoduleOb.unfreeze = unfreeze;\n\tmoduleOb.setVolume = setVolume;\n\tmoduleOb.mute = mute;\n\tmoduleOb.unmute = unmute;\n\tmoduleOb.getRegisteredAnimations = getRegisteredAnimations;\n\treturn moduleOb;\n}());\n\n/* eslint-disable */\nconst BezierFactory = (function () {\n\t/**\n\t * BezierEasing - use bezier curve for transition easing function\n\t * by Gaetan Renaudeau 2014 - 2015 - MIT License\n\t *\n\t * Credits: is based on Firefox's nsSMILKeySpline.cpp\n\t * Usage:\n\t * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\n\t * spline.get(x) => returns the easing value | x must be in [0, 1] range\n\t *\n\t */\n\n\tvar ob = {};\n\tob.getBezierEasing = getBezierEasing;\n\tvar beziers = {};\n\n\tfunction getBezierEasing(a, b, c, d, nm) {\n\t\tvar str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\t\tif (beziers[str]) {\n\t\t\treturn beziers[str];\n\t\t}\n\t\tvar bezEasing = new BezierEasing([a, b, c, d]);\n\t\tbeziers[str] = bezEasing;\n\t\treturn bezEasing;\n\t}\n\n\t// These values are established by empiricism with tests (tradeoff: performance VS precision)\n\tvar NEWTON_ITERATIONS = 4;\n\tvar NEWTON_MIN_SLOPE = 0.001;\n\tvar SUBDIVISION_PRECISION = 0.0000001;\n\tvar SUBDIVISION_MAX_ITERATIONS = 10;\n\n\tvar kSplineTableSize = 11;\n\tvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\n\tvar float32ArraySupported = typeof Float32Array === 'function';\n\n\tfunction A(aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\n\tfunction B(aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\n\tfunction C(aA1) { return 3.0 * aA1; }\n\n\t// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\tfunction calcBezier(aT, aA1, aA2) {\n\t\treturn ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n\t}\n\n\t// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\tfunction getSlope(aT, aA1, aA2) {\n\t\treturn 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n\t}\n\n\tfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n\t\tvar currentX,\n\t\t\tcurrentT,\n\t\t\ti = 0;\n\t\tdo {\n\t\t\tcurrentT = aA + (aB - aA) / 2.0;\n\t\t\tcurrentX = calcBezier(currentT, mX1, mX2) - aX;\n\t\t\tif (currentX > 0.0) {\n\t\t\t\taB = currentT;\n\t\t\t} else {\n\t\t\t\taA = currentT;\n\t\t\t}\n\t\t} while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\t\treturn currentT;\n\t}\n\n\tfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n\t\tfor (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n\t\t\tvar currentSlope = getSlope(aGuessT, mX1, mX2);\n\t\t\tif (currentSlope === 0.0) return aGuessT;\n\t\t\tvar currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n\t\t\taGuessT -= currentX / currentSlope;\n\t\t}\n\t\treturn aGuessT;\n\t}\n\n\t/**\n\t * points is an array of [ mX1, mY1, mX2, mY2 ]\n\t */\n\tfunction BezierEasing(points) {\n\t\tthis._p = points;\n\t\tthis._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n\t\tthis._precomputed = false;\n\n\t\tthis.get = this.get.bind(this);\n\t}\n\n\tBezierEasing.prototype = {\n\n\t\tget: function (x) {\n\t\t\tvar mX1 = this._p[0],\n\t\t\t\tmY1 = this._p[1],\n\t\t\t\tmX2 = this._p[2],\n\t\t\t\tmY2 = this._p[3];\n\t\t\tif (!this._precomputed) this._precompute();\n\t\t\tif (mX1 === mY1 && mX2 === mY2) return x; // linear\n\t\t\t// Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\t\t\tif (x === 0) return 0;\n\t\t\tif (x === 1) return 1;\n\t\t\treturn calcBezier(this._getTForX(x), mY1, mY2);\n\t\t},\n\n\t\t// Private part\n\n\t\t_precompute: function () {\n\t\t\tvar mX1 = this._p[0],\n\t\t\t\tmY1 = this._p[1],\n\t\t\t\tmX2 = this._p[2],\n\t\t\t\tmY2 = this._p[3];\n\t\t\tthis._precomputed = true;\n\t\t\tif (mX1 !== mY1 || mX2 !== mY2) { this._calcSampleValues(); }\n\t\t},\n\n\t\t_calcSampleValues: function () {\n\t\t\tvar mX1 = this._p[0],\n\t\t\t\tmX2 = this._p[2];\n\t\t\tfor (var i = 0; i < kSplineTableSize; ++i) {\n\t\t\t\tthis._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\n\t\t */\n\t\t_getTForX: function (aX) {\n\t\t\tvar mX1 = this._p[0],\n\t\t\t\tmX2 = this._p[2],\n\t\t\t\tmSampleValues = this._mSampleValues;\n\n\t\t\tvar intervalStart = 0.0;\n\t\t\tvar currentSample = 1;\n\t\t\tvar lastSample = kSplineTableSize - 1;\n\n\t\t\tfor (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n\t\t\t\tintervalStart += kSampleStepSize;\n\t\t\t}\n\t\t\t--currentSample;\n\n\t\t\t// Interpolate to provide an initial guess for t\n\t\t\tvar dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n\t\t\tvar guessForT = intervalStart + dist * kSampleStepSize;\n\n\t\t\tvar initialSlope = getSlope(guessForT, mX1, mX2);\n\t\t\tif (initialSlope >= NEWTON_MIN_SLOPE) {\n\t\t\t\treturn newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n\t\t\t} if (initialSlope === 0.0) {\n\t\t\t\treturn guessForT;\n\t\t\t}\n\t\t\treturn binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n\t\t},\n\t};\n\n\treturn ob;\n}());\n\nconst pooling = (function () {\n\tfunction double(arr) {\n\t\treturn arr.concat(createSizedArray(arr.length));\n\t}\n\n\treturn {\n\t\tdouble: double,\n\t};\n}());\n\nconst poolFactory = (function () {\n\treturn function (initialLength, _create, _release) {\n\t\tvar _length = 0;\n\t\tvar _maxLength = initialLength;\n\t\tvar pool = createSizedArray(_maxLength);\n\n\t\tvar ob = {\n\t\t\tnewElement: newElement,\n\t\t\trelease: release,\n\t\t};\n\n\t\tfunction newElement() {\n\t\t\tvar element;\n\t\t\tif (_length) {\n\t\t\t\t_length -= 1;\n\t\t\t\telement = pool[_length];\n\t\t\t} else {\n\t\t\t\telement = _create();\n\t\t\t}\n\t\t\treturn element;\n\t\t}\n\n\t\tfunction release(element) {\n\t\t\tif (_length === _maxLength) {\n\t\t\t\tpool = pooling.double(pool);\n\t\t\t\t_maxLength *= 2;\n\t\t\t}\n\t\t\tif (_release) {\n\t\t\t\t_release(element);\n\t\t\t}\n\t\t\tpool[_length] = element;\n\t\t\t_length += 1;\n\t\t}\n\n\t\treturn ob;\n\t};\n}());\n\nconst bezierLengthPool = (function () {\n\tfunction create() {\n\t\treturn {\n\t\t\taddedLength: 0,\n\t\t\tpercents: createTypedArray('float32', getDefaultCurveSegments()),\n\t\t\tlengths: createTypedArray('float32', getDefaultCurveSegments()),\n\t\t};\n\t}\n\treturn poolFactory(8, create);\n}());\n\nconst segmentsLengthPool = (function () {\n\tfunction create() {\n\t\treturn {\n\t\t\tlengths: [],\n\t\t\ttotalLength: 0,\n\t\t};\n\t}\n\n\tfunction release(element) {\n\t\tvar i;\n\t\tvar len = element.lengths.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tbezierLengthPool.release(element.lengths[i]);\n\t\t}\n\t\telement.lengths.length = 0;\n\t}\n\n\treturn poolFactory(8, create, release);\n}());\n\nfunction bezFunction() {\n\tvar math = Math;\n\n\tfunction pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n\t\tvar det1 = (x1 * y2) + (y1 * x3) + (x2 * y3) - (x3 * y2) - (y3 * x1) - (x2 * y1);\n\t\treturn det1 > -0.001 && det1 < 0.001;\n\t}\n\n\tfunction pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n\t\tif (z1 === 0 && z2 === 0 && z3 === 0) {\n\t\t\treturn pointOnLine2D(x1, y1, x2, y2, x3, y3);\n\t\t}\n\t\tvar dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n\t\tvar dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n\t\tvar dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n\t\tvar diffDist;\n\t\tif (dist1 > dist2) {\n\t\t\tif (dist1 > dist3) {\n\t\t\t\tdiffDist = dist1 - dist2 - dist3;\n\t\t\t} else {\n\t\t\t\tdiffDist = dist3 - dist2 - dist1;\n\t\t\t}\n\t\t} else if (dist3 > dist2) {\n\t\t\tdiffDist = dist3 - dist2 - dist1;\n\t\t} else {\n\t\t\tdiffDist = dist2 - dist1 - dist3;\n\t\t}\n\t\treturn diffDist > -0.0001 && diffDist < 0.0001;\n\t}\n\n\tvar getBezierLength = (function () {\n\t\treturn function (pt1, pt2, pt3, pt4) {\n\t\t\tvar curveSegments = getDefaultCurveSegments();\n\t\t\tvar k;\n\t\t\tvar i;\n\t\t\tvar len;\n\t\t\tvar ptCoord;\n\t\t\tvar perc;\n\t\t\tvar addedLength = 0;\n\t\t\tvar ptDistance;\n\t\t\tvar point = [];\n\t\t\tvar lastPoint = [];\n\t\t\tvar lengthData = bezierLengthPool.newElement();\n\t\t\tlen = pt3.length;\n\t\t\tfor (k = 0; k < curveSegments; k += 1) {\n\t\t\t\tperc = k / (curveSegments - 1);\n\t\t\t\tptDistance = 0;\n\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\tptCoord = 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\t\t\t\t\tpoint[i] = ptCoord;\n\t\t\t\t\tif (lastPoint[i] !== null) {\n\t\t\t\t\t\tptDistance += bmPow(point[i] - lastPoint[i], 2);\n\t\t\t\t\t}\n\t\t\t\t\tlastPoint[i] = point[i];\n\t\t\t\t}\n\t\t\t\tif (ptDistance) {\n\t\t\t\t\tptDistance = bmSqrt(ptDistance);\n\t\t\t\t\taddedLength += ptDistance;\n\t\t\t\t}\n\t\t\t\tlengthData.percents[k] = perc;\n\t\t\t\tlengthData.lengths[k] = addedLength;\n\t\t\t}\n\t\t\tlengthData.addedLength = addedLength;\n\t\t\treturn lengthData;\n\t\t};\n\t}());\n\n\tfunction getSegmentsLength(shapeData) {\n\t\tvar segmentsLength = segmentsLengthPool.newElement();\n\t\tvar closed = shapeData.c;\n\t\tvar pathV = shapeData.v;\n\t\tvar pathO = shapeData.o;\n\t\tvar pathI = shapeData.i;\n\t\tvar i;\n\t\tvar len = shapeData._length;\n\t\tvar lengths = segmentsLength.lengths;\n\t\tvar totalLength = 0;\n\t\tfor (i = 0; i < len - 1; i += 1) {\n\t\t\tlengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n\t\t\ttotalLength += lengths[i].addedLength;\n\t\t}\n\t\tif (closed && len) {\n\t\t\tlengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n\t\t\ttotalLength += lengths[i].addedLength;\n\t\t}\n\t\tsegmentsLength.totalLength = totalLength;\n\t\treturn segmentsLength;\n\t}\n\n\tfunction BezierData(length) {\n\t\tthis.segmentLength = 0;\n\t\tthis.points = new Array(length);\n\t}\n\n\tfunction PointData(partial, point) {\n\t\tthis.partialLength = partial;\n\t\tthis.point = point;\n\t}\n\n\tvar buildBezierData = (function () {\n\t\tvar storedData = {};\n\n\t\treturn function (pt1, pt2, pt3, pt4) {\n\t\t\tvar bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\t\t\tif (!storedData[bezierName]) {\n\t\t\t\tvar curveSegments = getDefaultCurveSegments();\n\t\t\t\tvar k;\n\t\t\t\tvar i;\n\t\t\t\tvar len;\n\t\t\t\tvar ptCoord;\n\t\t\t\tvar perc;\n\t\t\t\tvar addedLength = 0;\n\t\t\t\tvar ptDistance;\n\t\t\t\tvar point;\n\t\t\t\tvar lastPoint = null;\n\t\t\t\tif (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\t\t\t\t\tcurveSegments = 2;\n\t\t\t\t}\n\t\t\t\tvar bezierData = new BezierData(curveSegments);\n\t\t\t\tlen = pt3.length;\n\t\t\t\tfor (k = 0; k < curveSegments; k += 1) {\n\t\t\t\t\tpoint = createSizedArray(len);\n\t\t\t\t\tperc = k / (curveSegments - 1);\n\t\t\t\t\tptDistance = 0;\n\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\tptCoord = 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\t\t\t\t\t\tpoint[i] = ptCoord;\n\t\t\t\t\t\tif (lastPoint !== null) {\n\t\t\t\t\t\t\tptDistance += bmPow(point[i] - lastPoint[i], 2);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tptDistance = bmSqrt(ptDistance);\n\t\t\t\t\taddedLength += ptDistance;\n\t\t\t\t\tbezierData.points[k] = new PointData(ptDistance, point);\n\t\t\t\t\tlastPoint = point;\n\t\t\t\t}\n\t\t\t\tbezierData.segmentLength = addedLength;\n\t\t\t\tstoredData[bezierName] = bezierData;\n\t\t\t}\n\t\t\treturn storedData[bezierName];\n\t\t};\n\t}());\n\n\tfunction getDistancePerc(perc, bezierData) {\n\t\tvar percents = bezierData.percents;\n\t\tvar lengths = bezierData.lengths;\n\t\tvar len = percents.length;\n\t\tvar initPos = bmFloor((len - 1) * perc);\n\t\tvar lengthPos = perc * bezierData.addedLength;\n\t\tvar lPerc = 0;\n\t\tif (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n\t\t\treturn percents[initPos];\n\t\t}\n\t\tvar dir = lengths[initPos] > lengthPos ? -1 : 1;\n\t\tvar flag = true;\n\t\twhile (flag) {\n\t\t\tif (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n\t\t\t\tlPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n\t\t\t\tflag = false;\n\t\t\t} else {\n\t\t\t\tinitPos += dir;\n\t\t\t}\n\t\t\tif (initPos < 0 || initPos >= len - 1) {\n\t\t\t\t// FIX for TypedArrays that don't store floating point values with enough accuracy\n\t\t\t\tif (initPos === len - 1) {\n\t\t\t\t\treturn percents[initPos];\n\t\t\t\t}\n\t\t\t\tflag = false;\n\t\t\t}\n\t\t}\n\t\treturn percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n\t}\n\n\tfunction getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n\t\tvar t1 = getDistancePerc(percent, bezierData);\n\t\tvar u1 = 1 - t1;\n\t\tvar 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\t\tvar 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\t\treturn [ptX, ptY];\n\t}\n\n\tvar bezierSegmentPoints = createTypedArray('float32', 8);\n\n\tfunction getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n\t\tif (startPerc < 0) {\n\t\t\tstartPerc = 0;\n\t\t} else if (startPerc > 1) {\n\t\t\tstartPerc = 1;\n\t\t}\n\t\tvar t0 = getDistancePerc(startPerc, bezierData);\n\t\tendPerc = endPerc > 1 ? 1 : endPerc;\n\t\tvar t1 = getDistancePerc(endPerc, bezierData);\n\t\tvar i;\n\t\tvar len = pt1.length;\n\t\tvar u0 = 1 - t0;\n\t\tvar u1 = 1 - t1;\n\t\tvar u0u0u0 = u0 * u0 * u0;\n\t\tvar t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\t\tvar t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\t\tvar t0t0t0 = t0 * t0 * t0;\n\t\t//\n\t\tvar u0u0u1 = u0 * u0 * u1;\n\t\tvar t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\t\tvar t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\t\tvar t0t0t1 = t0 * t0 * t1;\n\t\t//\n\t\tvar u0u1u1 = u0 * u1 * u1;\n\t\tvar t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\t\tvar t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\t\tvar t0t1t1 = t0 * t1 * t1;\n\t\t//\n\t\tvar u1u1u1 = u1 * u1 * u1;\n\t\tvar t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\t\tvar t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\t\tvar t1t1t1 = t1 * t1 * t1;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tbezierSegmentPoints[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\t\t\tbezierSegmentPoints[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\t\t\tbezierSegmentPoints[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\t\t\tbezierSegmentPoints[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\t\t}\n\n\t\treturn bezierSegmentPoints;\n\t}\n\n\treturn {\n\t\tgetSegmentsLength: getSegmentsLength,\n\t\tgetNewSegment: getNewSegment,\n\t\tgetPointInSegment: getPointInSegment,\n\t\tbuildBezierData: buildBezierData,\n\t\tpointOnLine2D: pointOnLine2D,\n\t\tpointOnLine3D: pointOnLine3D,\n\t};\n}\n\nconst bez = bezFunction();\n\nconst PropertyFactory = (function () {\n\tvar initFrame = initialDefaultFrame;\n\tvar mathAbs = Math.abs;\n\n\tfunction interpolateValue(frameNum, caching) {\n\t\tvar offsetTime = this.offsetTime;\n\t\tvar newValue;\n\t\tif (this.propType === 'multidimensional') {\n\t\t\tnewValue = createTypedArray('float32', this.pv.length);\n\t\t}\n\t\tvar iterationIndex = caching.lastIndex;\n\t\tvar i = iterationIndex;\n\t\tvar len = this.keyframes.length - 1;\n\t\tvar flag = true;\n\t\tvar keyData;\n\t\tvar nextKeyData;\n\t\tvar keyframeMetadata;\n\n\t\twhile (flag) {\n\t\t\tkeyData = this.keyframes[i];\n\t\t\tnextKeyData = this.keyframes[i + 1];\n\t\t\tif (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n\t\t\t\tif (keyData.h) {\n\t\t\t\t\tkeyData = nextKeyData;\n\t\t\t\t}\n\t\t\t\titerationIndex = 0;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ((nextKeyData.t - offsetTime) > frameNum) {\n\t\t\t\titerationIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (i < len - 1) {\n\t\t\t\ti += 1;\n\t\t\t} else {\n\t\t\t\titerationIndex = 0;\n\t\t\t\tflag = false;\n\t\t\t}\n\t\t}\n\t\tkeyframeMetadata = this.keyframesMetadata[i] || {};\n\n\t\tvar k;\n\t\tvar kLen;\n\t\tvar perc;\n\t\tvar jLen;\n\t\tvar j;\n\t\tvar fnc;\n\t\tvar nextKeyTime = nextKeyData.t - offsetTime;\n\t\tvar keyTime = keyData.t - offsetTime;\n\t\tvar endValue;\n\t\tif (keyData.to) {\n\t\t\tif (!keyframeMetadata.bezierData) {\n\t\t\t\tkeyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n\t\t\t}\n\t\t\tvar bezierData = keyframeMetadata.bezierData;\n\t\t\tif (frameNum >= nextKeyTime || frameNum < keyTime) {\n\t\t\t\tvar ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n\t\t\t\tkLen = bezierData.points[ind].point.length;\n\t\t\t\tfor (k = 0; k < kLen; k += 1) {\n\t\t\t\t\tnewValue[k] = bezierData.points[ind].point[k];\n\t\t\t\t}\n\t\t\t\t// caching._lastKeyframeIndex = -1;\n\t\t\t} else {\n\t\t\t\tif (keyframeMetadata.__fnct) {\n\t\t\t\t\tfnc = keyframeMetadata.__fnct;\n\t\t\t\t} else {\n\t\t\t\t\tfnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n\t\t\t\t\tkeyframeMetadata.__fnct = fnc;\n\t\t\t\t}\n\t\t\t\tperc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n\t\t\t\tvar distanceInLine = bezierData.segmentLength * perc;\n\n\t\t\t\tvar segmentPerc;\n\t\t\t\tvar addedLength = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastAddedLength : 0;\n\t\t\t\tj = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastPoint : 0;\n\t\t\t\tflag = true;\n\t\t\t\tjLen = bezierData.points.length;\n\t\t\t\twhile (flag) {\n\t\t\t\t\taddedLength += bezierData.points[j].partialLength;\n\t\t\t\t\tif (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n\t\t\t\t\t\tkLen = bezierData.points[j].point.length;\n\t\t\t\t\t\tfor (k = 0; k < kLen; k += 1) {\n\t\t\t\t\t\t\tnewValue[k] = bezierData.points[j].point[k];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n\t\t\t\t\t\tsegmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n\t\t\t\t\t\tkLen = bezierData.points[j].point.length;\n\t\t\t\t\t\tfor (k = 0; k < kLen; k += 1) {\n\t\t\t\t\t\t\tnewValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif (j < jLen - 1) {\n\t\t\t\t\t\tj += 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tflag = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcaching._lastPoint = j;\n\t\t\t\tcaching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n\t\t\t\tcaching._lastKeyframeIndex = i;\n\t\t\t}\n\t\t} else {\n\t\t\tvar outX;\n\t\t\tvar outY;\n\t\t\tvar inX;\n\t\t\tvar inY;\n\t\t\tvar keyValue;\n\t\t\tlen = keyData.s.length;\n\t\t\tendValue = nextKeyData.s || keyData.e;\n\t\t\tif (this.sh && keyData.h !== 1) {\n\t\t\t\tif (frameNum >= nextKeyTime) {\n\t\t\t\t\tnewValue[0] = endValue[0];\n\t\t\t\t\tnewValue[1] = endValue[1];\n\t\t\t\t\tnewValue[2] = endValue[2];\n\t\t\t\t} else if (frameNum <= keyTime) {\n\t\t\t\t\tnewValue[0] = keyData.s[0];\n\t\t\t\t\tnewValue[1] = keyData.s[1];\n\t\t\t\t\tnewValue[2] = keyData.s[2];\n\t\t\t\t} else {\n\t\t\t\t\tvar quatStart = createQuaternion(keyData.s);\n\t\t\t\t\tvar quatEnd = createQuaternion(endValue);\n\t\t\t\t\tvar time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n\t\t\t\t\tquaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\tif (keyData.h !== 1) {\n\t\t\t\t\t\tif (frameNum >= nextKeyTime) {\n\t\t\t\t\t\t\tperc = 1;\n\t\t\t\t\t\t} else if (frameNum < keyTime) {\n\t\t\t\t\t\t\tperc = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (keyData.o.x.constructor === Array) {\n\t\t\t\t\t\t\t\tif (!keyframeMetadata.__fnct) {\n\t\t\t\t\t\t\t\t\tkeyframeMetadata.__fnct = [];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (!keyframeMetadata.__fnct[i]) {\n\t\t\t\t\t\t\t\t\toutX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n\t\t\t\t\t\t\t\t\toutY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n\t\t\t\t\t\t\t\t\tinX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n\t\t\t\t\t\t\t\t\tinY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n\t\t\t\t\t\t\t\t\tfnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n\t\t\t\t\t\t\t\t\tkeyframeMetadata.__fnct[i] = fnc;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tfnc = keyframeMetadata.__fnct[i];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (!keyframeMetadata.__fnct) {\n\t\t\t\t\t\t\t\toutX = keyData.o.x;\n\t\t\t\t\t\t\t\toutY = keyData.o.y;\n\t\t\t\t\t\t\t\tinX = keyData.i.x;\n\t\t\t\t\t\t\t\tinY = keyData.i.y;\n\t\t\t\t\t\t\t\tfnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n\t\t\t\t\t\t\t\tkeyData.keyframeMetadata = fnc;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfnc = keyframeMetadata.__fnct;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tperc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tendValue = nextKeyData.s || keyData.e;\n\t\t\t\t\tkeyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n\t\t\t\t\tif (this.propType === 'multidimensional') {\n\t\t\t\t\t\tnewValue[i] = keyValue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewValue = keyValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcaching.lastIndex = iterationIndex;\n\t\treturn newValue;\n\t}\n\n\t// based on @Toji's https://github.com/toji/gl-matrix/\n\tfunction slerp(a, b, t) {\n\t\tvar out = [];\n\t\tvar ax = a[0];\n\t\tvar ay = a[1];\n\t\tvar az = a[2];\n\t\tvar aw = a[3];\n\t\tvar bx = b[0];\n\t\tvar by = b[1];\n\t\tvar bz = b[2];\n\t\tvar bw = b[3];\n\n\t\tvar omega;\n\t\tvar cosom;\n\t\tvar sinom;\n\t\tvar scale0;\n\t\tvar scale1;\n\n\t\tcosom = ax * bx + ay * by + az * bz + aw * bw;\n\t\tif (cosom < 0.0) {\n\t\t\tcosom = -cosom;\n\t\t\tbx = -bx;\n\t\t\tby = -by;\n\t\t\tbz = -bz;\n\t\t\tbw = -bw;\n\t\t}\n\t\tif ((1.0 - cosom) > 0.000001) {\n\t\t\tomega = Math.acos(cosom);\n\t\t\tsinom = Math.sin(omega);\n\t\t\tscale0 = Math.sin((1.0 - t) * omega) / sinom;\n\t\t\tscale1 = Math.sin(t * omega) / sinom;\n\t\t} else {\n\t\t\tscale0 = 1.0 - t;\n\t\t\tscale1 = t;\n\t\t}\n\t\tout[0] = scale0 * ax + scale1 * bx;\n\t\tout[1] = scale0 * ay + scale1 * by;\n\t\tout[2] = scale0 * az + scale1 * bz;\n\t\tout[3] = scale0 * aw + scale1 * bw;\n\n\t\treturn out;\n\t}\n\n\tfunction quaternionToEuler(out, quat) {\n\t\tvar qx = quat[0];\n\t\tvar qy = quat[1];\n\t\tvar qz = quat[2];\n\t\tvar qw = quat[3];\n\t\tvar heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n\t\tvar attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n\t\tvar bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n\t\tout[0] = heading / degToRads;\n\t\tout[1] = attitude / degToRads;\n\t\tout[2] = bank / degToRads;\n\t}\n\n\tfunction createQuaternion(values) {\n\t\tvar heading = values[0] * degToRads;\n\t\tvar attitude = values[1] * degToRads;\n\t\tvar bank = values[2] * degToRads;\n\t\tvar c1 = Math.cos(heading / 2);\n\t\tvar c2 = Math.cos(attitude / 2);\n\t\tvar c3 = Math.cos(bank / 2);\n\t\tvar s1 = Math.sin(heading / 2);\n\t\tvar s2 = Math.sin(attitude / 2);\n\t\tvar s3 = Math.sin(bank / 2);\n\t\tvar w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\tvar x = s1 * s2 * c3 + c1 * c2 * s3;\n\t\tvar y = s1 * c2 * c3 + c1 * s2 * s3;\n\t\tvar z = c1 * s2 * c3 - s1 * c2 * s3;\n\n\t\treturn [x, y, z, w];\n\t}\n\n\tfunction getValueAtCurrentTime() {\n\t\tvar frameNum = this.comp.renderedFrame - this.offsetTime;\n\t\tvar initTime = this.keyframes[0].t - this.offsetTime;\n\t\tvar endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\t\tif (!(frameNum === this._caching.lastFrame || (this._caching.lastFrame !== initFrame && ((this._caching.lastFrame >= endTime && frameNum >= endTime) || (this._caching.lastFrame < initTime && frameNum < initTime))))) {\n\t\t\tif (this._caching.lastFrame >= frameNum) {\n\t\t\t\tthis._caching._lastKeyframeIndex = -1;\n\t\t\t\tthis._caching.lastIndex = 0;\n\t\t\t}\n\n\t\t\tvar renderResult = this.interpolateValue(frameNum, this._caching);\n\t\t\tthis.pv = renderResult;\n\t\t}\n\t\tthis._caching.lastFrame = frameNum;\n\t\treturn this.pv;\n\t}\n\n\tfunction setVValue(val) {\n\t\tvar multipliedValue;\n\t\tif (this.propType === 'unidimensional') {\n\t\t\tmultipliedValue = val * this.mult;\n\t\t\tif (mathAbs(this.v - multipliedValue) > 0.00001) {\n\t\t\t\tthis.v = multipliedValue;\n\t\t\t\tthis._mdf = true;\n\t\t\t}\n\t\t} else {\n\t\t\tvar i = 0;\n\t\t\tvar len = this.v.length;\n\t\t\twhile (i < len) {\n\t\t\t\tmultipliedValue = val[i] * this.mult;\n\t\t\t\tif (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n\t\t\t\t\tthis.v[i] = multipliedValue;\n\t\t\t\t\tthis._mdf = true;\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction processEffectsSequence() {\n\t\tif (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.lock) {\n\t\t\tthis.setVValue(this.pv);\n\t\t\treturn;\n\t\t}\n\t\tthis.lock = true;\n\t\tthis._mdf = this._isFirstFrame;\n\t\tvar i;\n\t\tvar len = this.effectsSequence.length;\n\t\tvar finalValue = this.kf ? this.pv : this.data.k;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tfinalValue = this.effectsSequence[i](finalValue);\n\t\t}\n\t\tthis.setVValue(finalValue);\n\t\tthis._isFirstFrame = false;\n\t\tthis.lock = false;\n\t\tthis.frameId = this.elem.globalData.frameId;\n\t}\n\n\tfunction addEffect(effectFunction) {\n\t\tthis.effectsSequence.push(effectFunction);\n\t\tthis.container.addDynamicProperty(this);\n\t}\n\n\tfunction ValueProperty(elem, data, mult, container) {\n\t\tthis.propType = 'unidimensional';\n\t\tthis.mult = mult || 1;\n\t\tthis.data = data;\n\t\tthis.v = mult ? data.k * mult : data.k;\n\t\tthis.pv = data.k;\n\t\tthis._mdf = false;\n\t\tthis.elem = elem;\n\t\tthis.container = container;\n\t\tthis.comp = elem.comp;\n\t\tthis.k = false;\n\t\tthis.kf = false;\n\t\tthis.vel = 0;\n\t\tthis.effectsSequence = [];\n\t\tthis._isFirstFrame = true;\n\t\tthis.getValue = processEffectsSequence;\n\t\tthis.setVValue = setVValue;\n\t\tthis.addEffect = addEffect;\n\t}\n\n\tfunction MultiDimensionalProperty(elem, data, mult, container) {\n\t\tthis.propType = 'multidimensional';\n\t\tthis.mult = mult || 1;\n\t\tthis.data = data;\n\t\tthis._mdf = false;\n\t\tthis.elem = elem;\n\t\tthis.container = container;\n\t\tthis.comp = elem.comp;\n\t\tthis.k = false;\n\t\tthis.kf = false;\n\t\tthis.frameId = -1;\n\t\tvar i;\n\t\tvar len = data.k.length;\n\t\tthis.v = createTypedArray('float32', len);\n\t\tthis.pv = createTypedArray('float32', len);\n\t\tthis.vel = createTypedArray('float32', len);\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.v[i] = data.k[i] * this.mult;\n\t\t\tthis.pv[i] = data.k[i];\n\t\t}\n\t\tthis._isFirstFrame = true;\n\t\tthis.effectsSequence = [];\n\t\tthis.getValue = processEffectsSequence;\n\t\tthis.setVValue = setVValue;\n\t\tthis.addEffect = addEffect;\n\t}\n\n\tfunction KeyframedValueProperty(elem, data, mult, container) {\n\t\tthis.propType = 'unidimensional';\n\t\tthis.keyframes = data.k;\n\t\tthis.keyframesMetadata = [];\n\t\tthis.offsetTime = elem.data.st;\n\t\tthis.frameId = -1;\n\t\tthis._caching = {\n\t\t\tlastFrame: initFrame, lastIndex: 0, value: 0, _lastKeyframeIndex: -1,\n\t\t};\n\t\tthis.k = true;\n\t\tthis.kf = true;\n\t\tthis.data = data;\n\t\tthis.mult = mult || 1;\n\t\tthis.elem = elem;\n\t\tthis.container = container;\n\t\tthis.comp = elem.comp;\n\t\tthis.v = initFrame;\n\t\tthis.pv = initFrame;\n\t\tthis._isFirstFrame = true;\n\t\tthis.getValue = processEffectsSequence;\n\t\tthis.setVValue = setVValue;\n\t\tthis.interpolateValue = interpolateValue;\n\t\tthis.effectsSequence = [getValueAtCurrentTime.bind(this)];\n\t\tthis.addEffect = addEffect;\n\t}\n\n\tfunction KeyframedMultidimensionalProperty(elem, data, mult, container) {\n\t\tthis.propType = 'multidimensional';\n\t\tvar i;\n\t\tvar len = data.k.length;\n\t\tvar s;\n\t\tvar e;\n\t\tvar to;\n\t\tvar ti;\n\t\tfor (i = 0; i < len - 1; i += 1) {\n\t\t\tif (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n\t\t\t\ts = data.k[i].s;\n\t\t\t\te = data.k[i + 1].s;\n\t\t\t\tto = data.k[i].to;\n\t\t\t\tti = data.k[i].ti;\n\t\t\t\tif ((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\t\t\t\t\tdata.k[i].to = null;\n\t\t\t\t\tdata.k[i].ti = null;\n\t\t\t\t}\n\t\t\t\tif (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n\t\t\t\t\tif (s.length === 2 || (s[2] === e[2] && to[2] === 0 && ti[2] === 0)) {\n\t\t\t\t\t\tdata.k[i].to = null;\n\t\t\t\t\t\tdata.k[i].ti = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.effectsSequence = [getValueAtCurrentTime.bind(this)];\n\t\tthis.data = data;\n\t\tthis.keyframes = data.k;\n\t\tthis.keyframesMetadata = [];\n\t\tthis.offsetTime = elem.data.st;\n\t\tthis.k = true;\n\t\tthis.kf = true;\n\t\tthis._isFirstFrame = true;\n\t\tthis.mult = mult || 1;\n\t\tthis.elem = elem;\n\t\tthis.container = container;\n\t\tthis.comp = elem.comp;\n\t\tthis.getValue = processEffectsSequence;\n\t\tthis.setVValue = setVValue;\n\t\tthis.interpolateValue = interpolateValue;\n\t\tthis.frameId = -1;\n\t\tvar arrLen = data.k[0].s.length;\n\t\tthis.v = createTypedArray('float32', arrLen);\n\t\tthis.pv = createTypedArray('float32', arrLen);\n\t\tfor (i = 0; i < arrLen; i += 1) {\n\t\t\tthis.v[i] = initFrame;\n\t\t\tthis.pv[i] = initFrame;\n\t\t}\n\t\tthis._caching = { lastFrame: initFrame, lastIndex: 0, value: createTypedArray('float32', arrLen) };\n\t\tthis.addEffect = addEffect;\n\t}\n\n\tfunction getProp(elem, data, type, mult, container) {\n\t\tvar p;\n\t\tif (!data.k.length) {\n\t\t\tp = new ValueProperty(elem, data, mult, container);\n\t\t} else if (typeof (data.k[0]) === 'number') {\n\t\t\tp = new MultiDimensionalProperty(elem, data, mult, container);\n\t\t} else {\n\t\t\tswitch (type) {\n\t\t\t\tcase 0:\n\t\t\t\t\tp = new KeyframedValueProperty(elem, data, mult, container);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\t\tp = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (p.effectsSequence.length) {\n\t\t\tcontainer.addDynamicProperty(p);\n\t\t}\n\t\treturn p;\n\t}\n\n\tvar ob = {\n\t\tgetProp: getProp,\n\t};\n\treturn ob;\n}());\n\nfunction DynamicPropertyContainer() {}\nDynamicPropertyContainer.prototype = {\n\taddDynamicProperty: function (prop) {\n\t\tif (this.dynamicProperties.indexOf(prop) === -1) {\n\t\t\tthis.dynamicProperties.push(prop);\n\t\t\tthis.container.addDynamicProperty(this);\n\t\t\tthis._isAnimated = true;\n\t\t}\n\t},\n\titerateDynamicProperties: function () {\n\t\tthis._mdf = false;\n\t\tvar i;\n\t\tvar len = this.dynamicProperties.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.dynamicProperties[i].getValue();\n\t\t\tif (this.dynamicProperties[i]._mdf) {\n\t\t\t\tthis._mdf = true;\n\t\t\t}\n\t\t}\n\t},\n\tinitDynamicPropertyContainer: function (container) {\n\t\tthis.container = container;\n\t\tthis.dynamicProperties = [];\n\t\tthis._mdf = false;\n\t\tthis._isAnimated = false;\n\t},\n};\n\nconst pointPool = (function () {\n\tfunction create() {\n\t\treturn createTypedArray('float32', 2);\n\t}\n\treturn poolFactory(8, create);\n}());\n\nfunction ShapePath() {\n\tthis.c = false;\n\tthis._length = 0;\n\tthis._maxLength = 8;\n\tthis.v = createSizedArray(this._maxLength);\n\tthis.o = createSizedArray(this._maxLength);\n\tthis.i = createSizedArray(this._maxLength);\n}\n\nShapePath.prototype.setPathData = function (closed, len) {\n\tthis.c = closed;\n\tthis.setLength(len);\n\tvar i = 0;\n\twhile (i < len) {\n\t\tthis.v[i] = pointPool.newElement();\n\t\tthis.o[i] = pointPool.newElement();\n\t\tthis.i[i] = pointPool.newElement();\n\t\ti += 1;\n\t}\n};\n\nShapePath.prototype.setLength = function (len) {\n\twhile (this._maxLength < len) {\n\t\tthis.doubleArrayLength();\n\t}\n\tthis._length = len;\n};\n\nShapePath.prototype.doubleArrayLength = function () {\n\tthis.v = this.v.concat(createSizedArray(this._maxLength));\n\tthis.i = this.i.concat(createSizedArray(this._maxLength));\n\tthis.o = this.o.concat(createSizedArray(this._maxLength));\n\tthis._maxLength *= 2;\n};\n\nShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n\tvar arr;\n\tthis._length = Math.max(this._length, pos + 1);\n\tif (this._length >= this._maxLength) {\n\t\tthis.doubleArrayLength();\n\t}\n\tswitch (type) {\n\t\tcase 'v':\n\t\t\tarr = this.v;\n\t\t\tbreak;\n\t\tcase 'i':\n\t\t\tarr = this.i;\n\t\t\tbreak;\n\t\tcase 'o':\n\t\t\tarr = this.o;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tarr = [];\n\t\t\tbreak;\n\t}\n\tif (!arr[pos] || (arr[pos] && !replace)) {\n\t\tarr[pos] = pointPool.newElement();\n\t}\n\tarr[pos][0] = x;\n\tarr[pos][1] = y;\n};\n\nShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n\tthis.setXYAt(vX, vY, 'v', pos, replace);\n\tthis.setXYAt(oX, oY, 'o', pos, replace);\n\tthis.setXYAt(iX, iY, 'i', pos, replace);\n};\n\nShapePath.prototype.reverse = function () {\n\tvar newPath = new ShapePath();\n\tnewPath.setPathData(this.c, this._length);\n\tvar vertices = this.v;\n\tvar outPoints = this.o;\n\tvar inPoints = this.i;\n\tvar init = 0;\n\tif (this.c) {\n\t\tnewPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n\t\tinit = 1;\n\t}\n\tvar cnt = this._length - 1;\n\tvar len = this._length;\n\n\tvar i;\n\tfor (i = init; i < len; i += 1) {\n\t\tnewPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n\t\tcnt -= 1;\n\t}\n\treturn newPath;\n};\n\nconst shapePool = (function () {\n\tfunction create() {\n\t\treturn new ShapePath();\n\t}\n\n\tfunction release(shapePath) {\n\t\tvar len = shapePath._length;\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tpointPool.release(shapePath.v[i]);\n\t\t\tpointPool.release(shapePath.i[i]);\n\t\t\tpointPool.release(shapePath.o[i]);\n\t\t\tshapePath.v[i] = null;\n\t\t\tshapePath.i[i] = null;\n\t\t\tshapePath.o[i] = null;\n\t\t}\n\t\tshapePath._length = 0;\n\t\tshapePath.c = false;\n\t}\n\n\tfunction clone(shape) {\n\t\tvar cloned = factory.newElement();\n\t\tvar i;\n\t\tvar len = shape._length === undefined ? shape.v.length : shape._length;\n\t\tcloned.setLength(len);\n\t\tcloned.c = shape.c;\n\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tcloned.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\t\t}\n\t\treturn cloned;\n\t}\n\n\tvar factory = poolFactory(4, create, release);\n\tfactory.clone = clone;\n\n\treturn factory;\n}());\n\nfunction ShapeCollection() {\n\tthis._length = 0;\n\tthis._maxLength = 4;\n\tthis.shapes = createSizedArray(this._maxLength);\n}\n\nShapeCollection.prototype.addShape = function (shapeData) {\n\tif (this._length === this._maxLength) {\n\t\tthis.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n\t\tthis._maxLength *= 2;\n\t}\n\tthis.shapes[this._length] = shapeData;\n\tthis._length += 1;\n};\n\nShapeCollection.prototype.releaseShapes = function () {\n\tvar i;\n\tfor (i = 0; i < this._length; i += 1) {\n\t\tshapePool.release(this.shapes[i]);\n\t}\n\tthis._length = 0;\n};\n\nconst shapeCollectionPool = (function () {\n\tvar ob = {\n\t\tnewShapeCollection: newShapeCollection,\n\t\trelease: release,\n\t};\n\n\tvar _length = 0;\n\tvar _maxLength = 4;\n\tvar pool = createSizedArray(_maxLength);\n\n\tfunction newShapeCollection() {\n\t\tvar shapeCollection;\n\t\tif (_length) {\n\t\t\t_length -= 1;\n\t\t\tshapeCollection = pool[_length];\n\t\t} else {\n\t\t\tshapeCollection = new ShapeCollection();\n\t\t}\n\t\treturn shapeCollection;\n\t}\n\n\tfunction release(shapeCollection) {\n\t\tvar i;\n\t\tvar len = shapeCollection._length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tshapePool.release(shapeCollection.shapes[i]);\n\t\t}\n\t\tshapeCollection._length = 0;\n\n\t\tif (_length === _maxLength) {\n\t\t\tpool = pooling.double(pool);\n\t\t\t_maxLength *= 2;\n\t\t}\n\t\tpool[_length] = shapeCollection;\n\t\t_length += 1;\n\t}\n\n\treturn ob;\n}());\n\nconst ShapePropertyFactory = (function () {\n\tvar initFrame = -999999;\n\n\tfunction interpolateShape(frameNum, previousValue, caching) {\n\t\tvar iterationIndex = caching.lastIndex;\n\t\tvar keyPropS;\n\t\tvar keyPropE;\n\t\tvar isHold;\n\t\tvar j;\n\t\tvar k;\n\t\tvar jLen;\n\t\tvar kLen;\n\t\tvar perc;\n\t\tvar vertexValue;\n\t\tvar kf = this.keyframes;\n\t\tif (frameNum < kf[0].t - this.offsetTime) {\n\t\t\tkeyPropS = kf[0].s[0];\n\t\t\tisHold = true;\n\t\t\titerationIndex = 0;\n\t\t} else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n\t\t\tkeyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n\t\t\t/* if(kf[kf.length - 1].s){\n                keyPropS = kf[kf.length - 1].s[0];\n            }else{\n                keyPropS = kf[kf.length - 2].e[0];\n            } */\n\t\t\tisHold = true;\n\t\t} else {\n\t\t\tvar i = iterationIndex;\n\t\t\tvar len = kf.length - 1;\n\t\t\tvar flag = true;\n\t\t\tvar keyData;\n\t\t\tvar nextKeyData;\n\t\t\tvar keyframeMetadata;\n\t\t\twhile (flag) {\n\t\t\t\tkeyData = kf[i];\n\t\t\t\tnextKeyData = kf[i + 1];\n\t\t\t\tif ((nextKeyData.t - this.offsetTime) > frameNum) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (i < len - 1) {\n\t\t\t\t\ti += 1;\n\t\t\t\t} else {\n\t\t\t\t\tflag = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tkeyframeMetadata = this.keyframesMetadata[i] || {};\n\t\t\tisHold = keyData.h === 1;\n\t\t\titerationIndex = i;\n\t\t\tif (!isHold) {\n\t\t\t\tif (frameNum >= nextKeyData.t - this.offsetTime) {\n\t\t\t\t\tperc = 1;\n\t\t\t\t} else if (frameNum < keyData.t - this.offsetTime) {\n\t\t\t\t\tperc = 0;\n\t\t\t\t} else {\n\t\t\t\t\tvar fnc;\n\t\t\t\t\tif (keyframeMetadata.__fnct) {\n\t\t\t\t\t\tfnc = keyframeMetadata.__fnct;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n\t\t\t\t\t\tkeyframeMetadata.__fnct = fnc;\n\t\t\t\t\t}\n\t\t\t\t\tperc = fnc((frameNum - (keyData.t - this.offsetTime)) / ((nextKeyData.t - this.offsetTime) - (keyData.t - this.offsetTime)));\n\t\t\t\t}\n\t\t\t\tkeyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n\t\t\t}\n\t\t\tkeyPropS = keyData.s[0];\n\t\t}\n\t\tjLen = previousValue._length;\n\t\tkLen = keyPropS.i[0].length;\n\t\tcaching.lastIndex = iterationIndex;\n\n\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\tfor (k = 0; k < kLen; k += 1) {\n\t\t\t\tvertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n\t\t\t\tpreviousValue.i[j][k] = vertexValue;\n\t\t\t\tvertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n\t\t\t\tpreviousValue.o[j][k] = vertexValue;\n\t\t\t\tvertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n\t\t\t\tpreviousValue.v[j][k] = vertexValue;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction interpolateShapeCurrentTime() {\n\t\tvar frameNum = this.comp.renderedFrame - this.offsetTime;\n\t\tvar initTime = this.keyframes[0].t - this.offsetTime;\n\t\tvar endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\t\tvar lastFrame = this._caching.lastFrame;\n\t\tif (!(lastFrame !== initFrame && ((lastFrame < initTime && frameNum < initTime) || (lastFrame > endTime && frameNum > endTime)))) {\n\t\t\t/// /\n\t\t\tthis._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n\t\t\tthis.interpolateShape(frameNum, this.pv, this._caching);\n\t\t\t/// /\n\t\t}\n\t\tthis._caching.lastFrame = frameNum;\n\t\treturn this.pv;\n\t}\n\n\tfunction resetShape() {\n\t\tthis.paths = this.localShapeCollection;\n\t}\n\n\tfunction shapesEqual(shape1, shape2) {\n\t\tif (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n\t\t\treturn false;\n\t\t}\n\t\tvar i;\n\t\tvar len = shape1._length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (shape1.v[i][0] !== shape2.v[i][0]\n\t\t\t\t|| shape1.v[i][1] !== shape2.v[i][1]\n\t\t\t\t|| shape1.o[i][0] !== shape2.o[i][0]\n\t\t\t\t|| shape1.o[i][1] !== shape2.o[i][1]\n\t\t\t\t|| shape1.i[i][0] !== shape2.i[i][0]\n\t\t\t\t|| shape1.i[i][1] !== shape2.i[i][1]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction setVValue(newPath) {\n\t\tif (!shapesEqual(this.v, newPath)) {\n\t\t\tthis.v = shapePool.clone(newPath);\n\t\t\tthis.localShapeCollection.releaseShapes();\n\t\t\tthis.localShapeCollection.addShape(this.v);\n\t\t\tthis._mdf = true;\n\t\t\tthis.paths = this.localShapeCollection;\n\t\t}\n\t}\n\n\tfunction processEffectsSequence() {\n\t\tif (this.elem.globalData.frameId === this.frameId) {\n\t\t\treturn;\n\t\t} if (!this.effectsSequence.length) {\n\t\t\tthis._mdf = false;\n\t\t\treturn;\n\t\t}\n\t\tif (this.lock) {\n\t\t\tthis.setVValue(this.pv);\n\t\t\treturn;\n\t\t}\n\t\tthis.lock = true;\n\t\tthis._mdf = false;\n\t\tvar finalValue;\n\t\tif (this.kf) {\n\t\t\tfinalValue = this.pv;\n\t\t} else if (this.data.ks) {\n\t\t\tfinalValue = this.data.ks.k;\n\t\t} else {\n\t\t\tfinalValue = this.data.pt.k;\n\t\t}\n\t\tvar i;\n\t\tvar len = this.effectsSequence.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tfinalValue = this.effectsSequence[i](finalValue);\n\t\t}\n\t\tthis.setVValue(finalValue);\n\t\tthis.lock = false;\n\t\tthis.frameId = this.elem.globalData.frameId;\n\t}\n\n\tfunction ShapeProperty(elem, data, type) {\n\t\tthis.propType = 'shape';\n\t\tthis.comp = elem.comp;\n\t\tthis.container = elem;\n\t\tthis.elem = elem;\n\t\tthis.data = data;\n\t\tthis.k = false;\n\t\tthis.kf = false;\n\t\tthis._mdf = false;\n\t\tvar pathData = type === 3 ? data.pt.k : data.ks.k;\n\t\tthis.v = shapePool.clone(pathData);\n\t\tthis.pv = shapePool.clone(this.v);\n\t\tthis.localShapeCollection = shapeCollectionPool.newShapeCollection();\n\t\tthis.paths = this.localShapeCollection;\n\t\tthis.paths.addShape(this.v);\n\t\tthis.reset = resetShape;\n\t\tthis.effectsSequence = [];\n\t}\n\n\tfunction addEffect(effectFunction) {\n\t\tthis.effectsSequence.push(effectFunction);\n\t\tthis.container.addDynamicProperty(this);\n\t}\n\n\tShapeProperty.prototype.interpolateShape = interpolateShape;\n\tShapeProperty.prototype.getValue = processEffectsSequence;\n\tShapeProperty.prototype.setVValue = setVValue;\n\tShapeProperty.prototype.addEffect = addEffect;\n\n\tfunction KeyframedShapeProperty(elem, data, type) {\n\t\tthis.propType = 'shape';\n\t\tthis.comp = elem.comp;\n\t\tthis.elem = elem;\n\t\tthis.container = elem;\n\t\tthis.offsetTime = elem.data.st;\n\t\tthis.keyframes = type === 3 ? data.pt.k : data.ks.k;\n\t\tthis.keyframesMetadata = [];\n\t\tthis.k = true;\n\t\tthis.kf = true;\n\t\tvar len = this.keyframes[0].s[0].i.length;\n\t\tthis.v = shapePool.newElement();\n\t\tthis.v.setPathData(this.keyframes[0].s[0].c, len);\n\t\tthis.pv = shapePool.clone(this.v);\n\t\tthis.localShapeCollection = shapeCollectionPool.newShapeCollection();\n\t\tthis.paths = this.localShapeCollection;\n\t\tthis.paths.addShape(this.v);\n\t\tthis.lastFrame = initFrame;\n\t\tthis.reset = resetShape;\n\t\tthis._caching = { lastFrame: initFrame, lastIndex: 0 };\n\t\tthis.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n\t}\n\tKeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n\tKeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n\tKeyframedShapeProperty.prototype.setVValue = setVValue;\n\tKeyframedShapeProperty.prototype.addEffect = addEffect;\n\n\tvar EllShapeProperty = (function () {\n\t\tvar cPoint = roundCorner;\n\n\t\tfunction EllShapePropertyFactory(elem, data) {\n\t\t\tthis.v = shapePool.newElement();\n\t\t\tthis.v.setPathData(true, 4);\n\t\t\tthis.localShapeCollection = shapeCollectionPool.newShapeCollection();\n\t\t\tthis.paths = this.localShapeCollection;\n\t\t\tthis.localShapeCollection.addShape(this.v);\n\t\t\tthis.d = data.d;\n\t\t\tthis.elem = elem;\n\t\t\tthis.comp = elem.comp;\n\t\t\tthis.frameId = -1;\n\t\t\tthis.initDynamicPropertyContainer(elem);\n\t\t\tthis.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n\t\t\tthis.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\t\t\tif (this.dynamicProperties.length) {\n\t\t\t\tthis.k = true;\n\t\t\t} else {\n\t\t\t\tthis.k = false;\n\t\t\t\tthis.convertEllToPath();\n\t\t\t}\n\t\t}\n\n\t\tEllShapePropertyFactory.prototype = {\n\t\t\treset: resetShape,\n\t\t\tgetValue: function () {\n\t\t\t\tif (this.elem.globalData.frameId === this.frameId) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.frameId = this.elem.globalData.frameId;\n\t\t\t\tthis.iterateDynamicProperties();\n\n\t\t\t\tif (this._mdf) {\n\t\t\t\t\tthis.convertEllToPath();\n\t\t\t\t}\n\t\t\t},\n\t\t\tconvertEllToPath: function () {\n\t\t\t\tvar p0 = this.p.v[0];\n\t\t\t\tvar p1 = this.p.v[1];\n\t\t\t\tvar s0 = this.s.v[0] / 2;\n\t\t\t\tvar s1 = this.s.v[1] / 2;\n\t\t\t\tvar _cw = this.d !== 3;\n\t\t\t\tvar _v = this.v;\n\t\t\t\t_v.v[0][0] = p0;\n\t\t\t\t_v.v[0][1] = p1 - s1;\n\t\t\t\t_v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n\t\t\t\t_v.v[1][1] = p1;\n\t\t\t\t_v.v[2][0] = p0;\n\t\t\t\t_v.v[2][1] = p1 + s1;\n\t\t\t\t_v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n\t\t\t\t_v.v[3][1] = p1;\n\t\t\t\t_v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n\t\t\t\t_v.i[0][1] = p1 - s1;\n\t\t\t\t_v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n\t\t\t\t_v.i[1][1] = p1 - s1 * cPoint;\n\t\t\t\t_v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n\t\t\t\t_v.i[2][1] = p1 + s1;\n\t\t\t\t_v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n\t\t\t\t_v.i[3][1] = p1 + s1 * cPoint;\n\t\t\t\t_v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n\t\t\t\t_v.o[0][1] = p1 - s1;\n\t\t\t\t_v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n\t\t\t\t_v.o[1][1] = p1 + s1 * cPoint;\n\t\t\t\t_v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n\t\t\t\t_v.o[2][1] = p1 + s1;\n\t\t\t\t_v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n\t\t\t\t_v.o[3][1] = p1 - s1 * cPoint;\n\t\t\t},\n\t\t};\n\n\t\textendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n\n\t\treturn EllShapePropertyFactory;\n\t}());\n\n\tvar StarShapeProperty = (function () {\n\t\tfunction StarShapePropertyFactory(elem, data) {\n\t\t\tthis.v = shapePool.newElement();\n\t\t\tthis.v.setPathData(true, 0);\n\t\t\tthis.elem = elem;\n\t\t\tthis.comp = elem.comp;\n\t\t\tthis.data = data;\n\t\t\tthis.frameId = -1;\n\t\t\tthis.d = data.d;\n\t\t\tthis.initDynamicPropertyContainer(elem);\n\t\t\tif (data.sy === 1) {\n\t\t\t\tthis.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n\t\t\t\tthis.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n\t\t\t\tthis.convertToPath = this.convertStarToPath;\n\t\t\t} else {\n\t\t\t\tthis.convertToPath = this.convertPolygonToPath;\n\t\t\t}\n\t\t\tthis.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n\t\t\tthis.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n\t\t\tthis.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n\t\t\tthis.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n\t\t\tthis.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n\t\t\tthis.localShapeCollection = shapeCollectionPool.newShapeCollection();\n\t\t\tthis.localShapeCollection.addShape(this.v);\n\t\t\tthis.paths = this.localShapeCollection;\n\t\t\tif (this.dynamicProperties.length) {\n\t\t\t\tthis.k = true;\n\t\t\t} else {\n\t\t\t\tthis.k = false;\n\t\t\t\tthis.convertToPath();\n\t\t\t}\n\t\t}\n\n\t\tStarShapePropertyFactory.prototype = {\n\t\t\treset: resetShape,\n\t\t\tgetValue: function () {\n\t\t\t\tif (this.elem.globalData.frameId === this.frameId) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.frameId = this.elem.globalData.frameId;\n\t\t\t\tthis.iterateDynamicProperties();\n\t\t\t\tif (this._mdf) {\n\t\t\t\t\tthis.convertToPath();\n\t\t\t\t}\n\t\t\t},\n\t\t\tconvertStarToPath: function () {\n\t\t\t\tvar numPts = Math.floor(this.pt.v) * 2;\n\t\t\t\tvar angle = (Math.PI * 2) / numPts;\n\t\t\t\t/* this.v.v.length = numPts;\n                this.v.i.length = numPts;\n                this.v.o.length = numPts; */\n\t\t\t\tvar longFlag = true;\n\t\t\t\tvar longRad = this.or.v;\n\t\t\t\tvar shortRad = this.ir.v;\n\t\t\t\tvar longRound = this.os.v;\n\t\t\t\tvar shortRound = this.is.v;\n\t\t\t\tvar longPerimSegment = (2 * Math.PI * longRad) / (numPts * 2);\n\t\t\t\tvar shortPerimSegment = (2 * Math.PI * shortRad) / (numPts * 2);\n\t\t\t\tvar i;\n\t\t\t\tvar rad;\n\t\t\t\tvar roundness;\n\t\t\t\tvar perimSegment;\n\t\t\t\tvar currentAng = -Math.PI / 2;\n\t\t\t\tcurrentAng += this.r.v;\n\t\t\t\tvar dir = this.data.d === 3 ? -1 : 1;\n\t\t\t\tthis.v._length = 0;\n\t\t\t\tfor (i = 0; i < numPts; i += 1) {\n\t\t\t\t\trad = longFlag ? longRad : shortRad;\n\t\t\t\t\troundness = longFlag ? longRound : shortRound;\n\t\t\t\t\tperimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n\t\t\t\t\tvar x = rad * Math.cos(currentAng);\n\t\t\t\t\tvar y = rad * Math.sin(currentAng);\n\t\t\t\t\tvar ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n\t\t\t\t\tvar oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n\t\t\t\t\tx += +this.p.v[0];\n\t\t\t\t\ty += +this.p.v[1];\n\t\t\t\t\tthis.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\n\t\t\t\t\t/* this.v.v[i] = [x,y];\n                    this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\n                    this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\n                    this.v._length = numPts; */\n\t\t\t\t\tlongFlag = !longFlag;\n\t\t\t\t\tcurrentAng += angle * dir;\n\t\t\t\t}\n\t\t\t},\n\t\t\tconvertPolygonToPath: function () {\n\t\t\t\tvar numPts = Math.floor(this.pt.v);\n\t\t\t\tvar angle = (Math.PI * 2) / numPts;\n\t\t\t\tvar rad = this.or.v;\n\t\t\t\tvar roundness = this.os.v;\n\t\t\t\tvar perimSegment = (2 * Math.PI * rad) / (numPts * 4);\n\t\t\t\tvar i;\n\t\t\t\tvar currentAng = -Math.PI * 0.5;\n\t\t\t\tvar dir = this.data.d === 3 ? -1 : 1;\n\t\t\t\tcurrentAng += this.r.v;\n\t\t\t\tthis.v._length = 0;\n\t\t\t\tfor (i = 0; i < numPts; i += 1) {\n\t\t\t\t\tvar x = rad * Math.cos(currentAng);\n\t\t\t\t\tvar y = rad * Math.sin(currentAng);\n\t\t\t\t\tvar ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n\t\t\t\t\tvar oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n\t\t\t\t\tx += +this.p.v[0];\n\t\t\t\t\ty += +this.p.v[1];\n\t\t\t\t\tthis.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\t\t\t\t\tcurrentAng += angle * dir;\n\t\t\t\t}\n\t\t\t\tthis.paths.length = 0;\n\t\t\t\tthis.paths[0] = this.v;\n\t\t\t},\n\n\t\t};\n\t\textendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n\n\t\treturn StarShapePropertyFactory;\n\t}());\n\n\tvar RectShapeProperty = (function () {\n\t\tfunction RectShapePropertyFactory(elem, data) {\n\t\t\tthis.v = shapePool.newElement();\n\t\t\tthis.v.c = true;\n\t\t\tthis.localShapeCollection = shapeCollectionPool.newShapeCollection();\n\t\t\tthis.localShapeCollection.addShape(this.v);\n\t\t\tthis.paths = this.localShapeCollection;\n\t\t\tthis.elem = elem;\n\t\t\tthis.comp = elem.comp;\n\t\t\tthis.frameId = -1;\n\t\t\tthis.d = data.d;\n\t\t\tthis.initDynamicPropertyContainer(elem);\n\t\t\tthis.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n\t\t\tthis.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\t\t\tthis.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\t\t\tif (this.dynamicProperties.length) {\n\t\t\t\tthis.k = true;\n\t\t\t} else {\n\t\t\t\tthis.k = false;\n\t\t\t\tthis.convertRectToPath();\n\t\t\t}\n\t\t}\n\n\t\tRectShapePropertyFactory.prototype = {\n\t\t\tconvertRectToPath: function () {\n\t\t\t\tvar p0 = this.p.v[0];\n\t\t\t\tvar p1 = this.p.v[1];\n\t\t\t\tvar v0 = this.s.v[0] / 2;\n\t\t\t\tvar v1 = this.s.v[1] / 2;\n\t\t\t\tvar round = bmMin(v0, v1, this.r.v);\n\t\t\t\tvar cPoint = round * (1 - roundCorner);\n\t\t\t\tthis.v._length = 0;\n\n\t\t\t\tif (this.d === 2 || this.d === 1) {\n\t\t\t\t\tthis.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n\t\t\t\t\tthis.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\t\t\t\t\tif (round !== 0) {\n\t\t\t\t\t\tthis.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\t\t\t\t\tif (round !== 0) {\n\t\t\t\t\t\tthis.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tgetValue: function () {\n\t\t\t\tif (this.elem.globalData.frameId === this.frameId) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.frameId = this.elem.globalData.frameId;\n\t\t\t\tthis.iterateDynamicProperties();\n\t\t\t\tif (this._mdf) {\n\t\t\t\t\tthis.convertRectToPath();\n\t\t\t\t}\n\t\t\t},\n\t\t\treset: resetShape,\n\t\t};\n\t\textendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n\n\t\treturn RectShapePropertyFactory;\n\t}());\n\n\tfunction getShapeProp(elem, data, type) {\n\t\tvar prop;\n\t\tif (type === 3 || type === 4) {\n\t\t\tvar dataProp = type === 3 ? data.pt : data.ks;\n\t\t\tvar keys = dataProp.k;\n\t\t\tif (keys.length) {\n\t\t\t\tprop = new KeyframedShapeProperty(elem, data, type);\n\t\t\t} else {\n\t\t\t\tprop = new ShapeProperty(elem, data, type);\n\t\t\t}\n\t\t} else if (type === 5) {\n\t\t\tprop = new RectShapeProperty(elem, data);\n\t\t} else if (type === 6) {\n\t\t\tprop = new EllShapeProperty(elem, data);\n\t\t} else if (type === 7) {\n\t\t\tprop = new StarShapeProperty(elem, data);\n\t\t}\n\t\tif (prop.k) {\n\t\t\telem.addDynamicProperty(prop);\n\t\t}\n\t\treturn prop;\n\t}\n\n\tfunction getConstructorFunction() {\n\t\treturn ShapeProperty;\n\t}\n\n\tfunction getKeyframedConstructorFunction() {\n\t\treturn KeyframedShapeProperty;\n\t}\n\n\tvar ob = {};\n\tob.getShapeProp = getShapeProp;\n\tob.getConstructorFunction = getConstructorFunction;\n\tob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n\treturn ob;\n}());\n\n/*!\n Transformation Matrix v2.0\n (c) Epistemex 2014-2015\n www.epistemex.com\n By Ken Fyrstenberg\n Contributions by leeoniya.\n License: MIT, header required.\n */\n\n/**\n * 2D transformation matrix object initialized with identity matrix.\n *\n * The matrix can synchronize a canvas context by supplying the context\n * as an argument, or later apply current absolute transform to an\n * existing context.\n *\n * All values are handled as floating point values.\n *\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\n * @prop {number} a - scale x\n * @prop {number} b - shear y\n * @prop {number} c - shear x\n * @prop {number} d - scale y\n * @prop {number} e - translate x\n * @prop {number} f - translate y\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\n * @constructor\n */\n\nconst Matrix = (function () {\n\tvar _cos = Math.cos;\n\tvar _sin = Math.sin;\n\tvar _tan = Math.tan;\n\tvar _rnd = Math.round;\n\n\tfunction reset() {\n\t\tthis.props[0] = 1;\n\t\tthis.props[1] = 0;\n\t\tthis.props[2] = 0;\n\t\tthis.props[3] = 0;\n\t\tthis.props[4] = 0;\n\t\tthis.props[5] = 1;\n\t\tthis.props[6] = 0;\n\t\tthis.props[7] = 0;\n\t\tthis.props[8] = 0;\n\t\tthis.props[9] = 0;\n\t\tthis.props[10] = 1;\n\t\tthis.props[11] = 0;\n\t\tthis.props[12] = 0;\n\t\tthis.props[13] = 0;\n\t\tthis.props[14] = 0;\n\t\tthis.props[15] = 1;\n\t\treturn this;\n\t}\n\n\tfunction rotate(angle) {\n\t\tif (angle === 0) {\n\t\t\treturn this;\n\t\t}\n\t\tvar mCos = _cos(angle);\n\t\tvar mSin = _sin(angle);\n\t\treturn this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n\t}\n\n\tfunction rotateX(angle) {\n\t\tif (angle === 0) {\n\t\t\treturn this;\n\t\t}\n\t\tvar mCos = _cos(angle);\n\t\tvar mSin = _sin(angle);\n\t\treturn this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n\t}\n\n\tfunction rotateY(angle) {\n\t\tif (angle === 0) {\n\t\t\treturn this;\n\t\t}\n\t\tvar mCos = _cos(angle);\n\t\tvar mSin = _sin(angle);\n\t\treturn this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n\t}\n\n\tfunction rotateZ(angle) {\n\t\tif (angle === 0) {\n\t\t\treturn this;\n\t\t}\n\t\tvar mCos = _cos(angle);\n\t\tvar mSin = _sin(angle);\n\t\treturn this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n\t}\n\n\tfunction shear(sx, sy) {\n\t\treturn this._t(1, sy, sx, 1, 0, 0);\n\t}\n\n\tfunction skew(ax, ay) {\n\t\treturn this.shear(_tan(ax), _tan(ay));\n\t}\n\n\tfunction skewFromAxis(ax, angle) {\n\t\tvar mCos = _cos(angle);\n\t\tvar mSin = _sin(angle);\n\t\treturn this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)\n\t\t\t._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)\n\t\t\t._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n\t\t// 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\t}\n\n\tfunction scale(sx, sy, sz) {\n\t\tif (!sz && sz !== 0) {\n\t\t\tsz = 1;\n\t\t}\n\t\tif (sx === 1 && sy === 1 && sz === 1) {\n\t\t\treturn this;\n\t\t}\n\t\treturn this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n\t}\n\n\tfunction setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n\t\tthis.props[0] = a;\n\t\tthis.props[1] = b;\n\t\tthis.props[2] = c;\n\t\tthis.props[3] = d;\n\t\tthis.props[4] = e;\n\t\tthis.props[5] = f;\n\t\tthis.props[6] = g;\n\t\tthis.props[7] = h;\n\t\tthis.props[8] = i;\n\t\tthis.props[9] = j;\n\t\tthis.props[10] = k;\n\t\tthis.props[11] = l;\n\t\tthis.props[12] = m;\n\t\tthis.props[13] = n;\n\t\tthis.props[14] = o;\n\t\tthis.props[15] = p;\n\t\treturn this;\n\t}\n\n\tfunction translate(tx, ty, tz) {\n\t\ttz = tz || 0;\n\t\tif (tx !== 0 || ty !== 0 || tz !== 0) {\n\t\t\treturn this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n\t\t}\n\t\treturn this;\n\t}\n\n\tfunction transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n\t\tvar _p = this.props;\n\n\t\tif (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\t\t\t// NOTE: commenting this condition because TurboFan deoptimizes code when present\n\t\t\t// if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n\t\t\t_p[12] = _p[12] * a2 + _p[15] * m2;\n\t\t\t_p[13] = _p[13] * f2 + _p[15] * n2;\n\t\t\t_p[14] = _p[14] * k2 + _p[15] * o2;\n\t\t\t_p[15] *= p2;\n\t\t\t// }\n\t\t\tthis._identityCalculated = false;\n\t\t\treturn this;\n\t\t}\n\n\t\tvar a1 = _p[0];\n\t\tvar b1 = _p[1];\n\t\tvar c1 = _p[2];\n\t\tvar d1 = _p[3];\n\t\tvar e1 = _p[4];\n\t\tvar f1 = _p[5];\n\t\tvar g1 = _p[6];\n\t\tvar h1 = _p[7];\n\t\tvar i1 = _p[8];\n\t\tvar j1 = _p[9];\n\t\tvar k1 = _p[10];\n\t\tvar l1 = _p[11];\n\t\tvar m1 = _p[12];\n\t\tvar n1 = _p[13];\n\t\tvar o1 = _p[14];\n\t\tvar p1 = _p[15];\n\n\t\t/* matrix order (canvas compatible):\n         * ace\n         * bdf\n         * 001\n         */\n\t\t_p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n\t\t_p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n\t\t_p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n\t\t_p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n\n\t\t_p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n\t\t_p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n\t\t_p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n\t\t_p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n\n\t\t_p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n\t\t_p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n\t\t_p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n\t\t_p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n\n\t\t_p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n\t\t_p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n\t\t_p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n\t\t_p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n\n\t\tthis._identityCalculated = false;\n\t\treturn this;\n\t}\n\n\tfunction isIdentity() {\n\t\tif (!this._identityCalculated) {\n\t\t\tthis._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\t\t\tthis._identityCalculated = true;\n\t\t}\n\t\treturn this._identity;\n\t}\n\n\tfunction equals(matr) {\n\t\tvar i = 0;\n\t\twhile (i < 16) {\n\t\t\tif (matr.props[i] !== this.props[i]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction clone(matr) {\n\t\tvar i;\n\t\tfor (i = 0; i < 16; i += 1) {\n\t\t\tmatr.props[i] = this.props[i];\n\t\t}\n\t\treturn matr;\n\t}\n\n\tfunction cloneFromProps(props) {\n\t\tvar i;\n\t\tfor (i = 0; i < 16; i += 1) {\n\t\t\tthis.props[i] = props[i];\n\t\t}\n\t}\n\n\tfunction applyToPoint(x, y, z) {\n\t\treturn {\n\t\t\tx: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n\t\t\ty: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n\t\t\tz: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14],\n\t\t};\n\t\t/* return {\n         x: x * me.a + y * me.c + me.e,\n         y: x * me.b + y * me.d + me.f\n         }; */\n\t}\n\tfunction applyToX(x, y, z) {\n\t\treturn x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n\t}\n\tfunction applyToY(x, y, z) {\n\t\treturn x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n\t}\n\tfunction applyToZ(x, y, z) {\n\t\treturn x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n\t}\n\n\tfunction getInverseMatrix() {\n\t\tvar determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n\t\tvar a = this.props[5] / determinant;\n\t\tvar b = -this.props[1] / determinant;\n\t\tvar c = -this.props[4] / determinant;\n\t\tvar d = this.props[0] / determinant;\n\t\tvar e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n\t\tvar f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n\t\tvar inverseMatrix = new Matrix();\n\t\tinverseMatrix.props[0] = a;\n\t\tinverseMatrix.props[1] = b;\n\t\tinverseMatrix.props[4] = c;\n\t\tinverseMatrix.props[5] = d;\n\t\tinverseMatrix.props[12] = e;\n\t\tinverseMatrix.props[13] = f;\n\t\treturn inverseMatrix;\n\t}\n\n\tfunction inversePoint(pt) {\n\t\tvar inverseMatrix = this.getInverseMatrix();\n\t\treturn inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n\t}\n\n\tfunction inversePoints(pts) {\n\t\tvar i;\n\t\tvar len = pts.length;\n\t\tvar retPts = [];\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tretPts[i] = inversePoint(pts[i]);\n\t\t}\n\t\treturn retPts;\n\t}\n\n\tfunction applyToTriplePoints(pt1, pt2, pt3) {\n\t\tvar arr = createTypedArray('float32', 6);\n\t\tif (this.isIdentity()) {\n\t\t\tarr[0] = pt1[0];\n\t\t\tarr[1] = pt1[1];\n\t\t\tarr[2] = pt2[0];\n\t\t\tarr[3] = pt2[1];\n\t\t\tarr[4] = pt3[0];\n\t\t\tarr[5] = pt3[1];\n\t\t} else {\n\t\t\tvar p0 = this.props[0];\n\t\t\tvar p1 = this.props[1];\n\t\t\tvar p4 = this.props[4];\n\t\t\tvar p5 = this.props[5];\n\t\t\tvar p12 = this.props[12];\n\t\t\tvar p13 = this.props[13];\n\t\t\tarr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n\t\t\tarr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n\t\t\tarr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n\t\t\tarr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n\t\t\tarr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n\t\t\tarr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n\t\t}\n\t\treturn arr;\n\t}\n\n\tfunction applyToPointArray(x, y, z) {\n\t\tvar arr;\n\t\tif (this.isIdentity()) {\n\t\t\tarr = [x, y, z];\n\t\t} else {\n\t\t\tarr = [\n\t\t\t\tx * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n\t\t\t\tx * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n\t\t\t\tx * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14],\n\t\t\t];\n\t\t}\n\t\treturn arr;\n\t}\n\n\tfunction applyToPointStringified(x, y) {\n\t\tif (this.isIdentity()) {\n\t\t\treturn x + ',' + y;\n\t\t}\n\t\tvar _p = this.props;\n\t\treturn 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\t}\n\n\tfunction toCSS() {\n\t\t// 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\t\t/* if(this.isIdentity()) {\n            return '';\n        } */\n\t\tvar i = 0;\n\t\tvar props = this.props;\n\t\tvar cssValue = 'matrix3d(';\n\t\tvar v = 10000;\n\t\twhile (i < 16) {\n\t\t\tcssValue += _rnd(props[i] * v) / v;\n\t\t\tcssValue += i === 15 ? ')' : ',';\n\t\t\ti += 1;\n\t\t}\n\t\treturn cssValue;\n\t}\n\n\tfunction roundMatrixProperty(val) {\n\t\tvar v = 10000;\n\t\tif ((val < 0.000001 && val > 0) || (val > -0.000001 && val < 0)) {\n\t\t\treturn _rnd(val * v) / v;\n\t\t}\n\t\treturn val;\n\t}\n\n\tfunction to2dCSS() {\n\t\t// 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\t\t/* if(this.isIdentity()) {\n            return '';\n        } */\n\t\tvar props = this.props;\n\t\tvar _a = roundMatrixProperty(props[0]);\n\t\tvar _b = roundMatrixProperty(props[1]);\n\t\tvar _c = roundMatrixProperty(props[4]);\n\t\tvar _d = roundMatrixProperty(props[5]);\n\t\tvar _e = roundMatrixProperty(props[12]);\n\t\tvar _f = roundMatrixProperty(props[13]);\n\t\treturn 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n\t}\n\n\treturn function () {\n\t\tthis.reset = reset;\n\t\tthis.rotate = rotate;\n\t\tthis.rotateX = rotateX;\n\t\tthis.rotateY = rotateY;\n\t\tthis.rotateZ = rotateZ;\n\t\tthis.skew = skew;\n\t\tthis.skewFromAxis = skewFromAxis;\n\t\tthis.shear = shear;\n\t\tthis.scale = scale;\n\t\tthis.setTransform = setTransform;\n\t\tthis.translate = translate;\n\t\tthis.transform = transform;\n\t\tthis.applyToPoint = applyToPoint;\n\t\tthis.applyToX = applyToX;\n\t\tthis.applyToY = applyToY;\n\t\tthis.applyToZ = applyToZ;\n\t\tthis.applyToPointArray = applyToPointArray;\n\t\tthis.applyToTriplePoints = applyToTriplePoints;\n\t\tthis.applyToPointStringified = applyToPointStringified;\n\t\tthis.toCSS = toCSS;\n\t\tthis.to2dCSS = to2dCSS;\n\t\tthis.clone = clone;\n\t\tthis.cloneFromProps = cloneFromProps;\n\t\tthis.equals = equals;\n\t\tthis.inversePoints = inversePoints;\n\t\tthis.inversePoint = inversePoint;\n\t\tthis.getInverseMatrix = getInverseMatrix;\n\t\tthis._t = this.transform;\n\t\tthis.isIdentity = isIdentity;\n\t\tthis._identity = true;\n\t\tthis._identityCalculated = false;\n\n\t\tthis.props = createTypedArray('float32', 16);\n\t\tthis.reset();\n\t};\n}());\n\nconst lottie = {};\nvar standalone = '__[STANDALONE]__';\nvar animationData = '__[ANIMATIONDATA]__';\nvar renderer = '';\n\nfunction setLocation(href) {\n\tsetLocationHref(href);\n}\n\nfunction searchAnimations() {\n\tif (standalone === true) {\n\t\tanimationManager.searchAnimations(animationData, standalone, renderer);\n\t} else {\n\t\tanimationManager.searchAnimations();\n\t}\n}\n\nfunction setSubframeRendering(flag) {\n\tsetSubframeEnabled(flag);\n}\n\nfunction setPrefix(prefix) {\n\tsetIdPrefix(prefix);\n}\n\nfunction loadAnimation(params) {\n\tif (standalone === true) {\n\t\tparams.animationData = JSON.parse(animationData);\n\t}\n\treturn animationManager.loadAnimation(params);\n}\n\nfunction setQuality(value) {\n\tif (typeof value === 'string') {\n\t\tswitch (value) {\n\t\t\tcase 'high':\n\t\t\t\tsetDefaultCurveSegments(200);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\tcase 'medium':\n\t\t\t\tsetDefaultCurveSegments(50);\n\t\t\t\tbreak;\n\t\t\tcase 'low':\n\t\t\t\tsetDefaultCurveSegments(10);\n\t\t\t\tbreak;\n\t\t}\n\t} else if (!isNaN(value) && value > 1) {\n\t\tsetDefaultCurveSegments(value);\n\t}\n\tif (getDefaultCurveSegments() >= 50) {\n\t\troundValues(false);\n\t} else {\n\t\troundValues(true);\n\t}\n}\n\nfunction inBrowser() {\n\treturn typeof navigator !== 'undefined';\n}\n\nfunction installPlugin(type, plugin) {\n\tif (type === 'expressions') {\n\t\tsetExpressionsPlugin(plugin);\n\t}\n}\n\nfunction getFactory(name) {\n\tswitch (name) {\n\t\tcase 'propertyFactory':\n\t\t\treturn PropertyFactory;\n\t\tcase 'shapePropertyFactory':\n\t\t\treturn ShapePropertyFactory;\n\t\tcase 'matrix':\n\t\t\treturn Matrix;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\nlottie.play = animationManager.play;\nlottie.pause = animationManager.pause;\nlottie.setLocationHref = setLocation;\nlottie.togglePause = animationManager.togglePause;\nlottie.setSpeed = animationManager.setSpeed;\nlottie.setDirection = animationManager.setDirection;\nlottie.stop = animationManager.stop;\nlottie.searchAnimations = searchAnimations;\nlottie.registerAnimation = animationManager.registerAnimation;\nlottie.loadAnimation = loadAnimation;\nlottie.setSubframeRendering = setSubframeRendering;\nlottie.resize = animationManager.resize;\n// lottie.start = start;\nlottie.goToAndStop = animationManager.goToAndStop;\nlottie.destroy = animationManager.destroy;\nlottie.setQuality = setQuality;\nlottie.inBrowser = inBrowser;\nlottie.installPlugin = installPlugin;\nlottie.freeze = animationManager.freeze;\nlottie.unfreeze = animationManager.unfreeze;\nlottie.setVolume = animationManager.setVolume;\nlottie.mute = animationManager.mute;\nlottie.unmute = animationManager.unmute;\nlottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\nlottie.useWebWorker = setWebWorker;\nlottie.setIDPrefix = setPrefix;\nlottie.__getFactory = getFactory;\nlottie.version = '[[BM_VERSION]]';\n\nfunction checkReady() {\n\tif (document.readyState === 'complete') {\n\t\tclearInterval(readyStateCheckInterval);\n\t\tsearchAnimations();\n\t}\n}\n\nfunction getQueryVariable(variable) {\n\tvar vars = queryString.split('&');\n\tfor (var i = 0; i < vars.length; i += 1) {\n\t\tvar pair = vars[i].split('=');\n\t\tif (decodeURIComponent(pair[0]) == variable) { // eslint-disable-line eqeqeq\n\t\t\treturn decodeURIComponent(pair[1]);\n\t\t}\n\t}\n\treturn null;\n}\nvar queryString = '';\nif (standalone) {\n\tvar scripts = document.getElementsByTagName('script');\n\tvar index = scripts.length - 1;\n\tvar myScript = scripts[index] || {\n\t\tsrc: '',\n\t};\n\tqueryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\trenderer = getQueryVariable('renderer');\n}\nvar readyStateCheckInterval = setInterval(checkReady, 100);\n\n// this adds bodymovin to the window object for backwards compatibility\ntry {\n\tif (!(typeof exports === 'object' && typeof module !== 'undefined')\n\t\t&& !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n\t) {\n\t\twindow.bodymovin = lottie;\n\t}\n} catch (err) {\n\t//\n}\n\nconst ShapeModifiers = (function () {\n\tvar ob = {};\n\tvar modifiers = {};\n\tob.registerModifier = registerModifier;\n\tob.getModifier = getModifier;\n\n\tfunction registerModifier(nm, factory) {\n\t\tif (!modifiers[nm]) {\n\t\t\tmodifiers[nm] = factory;\n\t\t}\n\t}\n\n\tfunction getModifier(nm, elem, data) {\n\t\treturn new modifiers[nm](elem, data);\n\t}\n\n\treturn ob;\n}());\n\nfunction ShapeModifier() {}\nShapeModifier.prototype.initModifierProperties = function () {};\nShapeModifier.prototype.addShapeToModifier = function () {};\nShapeModifier.prototype.addShape = function (data) {\n\tif (!this.closed) {\n\t\t// 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\t\tdata.sh.container.addDynamicProperty(data.sh);\n\t\tvar shapeData = { shape: data.sh, data: data, localShapeCollection: shapeCollectionPool.newShapeCollection() };\n\t\tthis.shapes.push(shapeData);\n\t\tthis.addShapeToModifier(shapeData);\n\t\tif (this._isAnimated) {\n\t\t\tdata.setAsAnimated();\n\t\t}\n\t}\n};\nShapeModifier.prototype.init = function (elem, data) {\n\tthis.shapes = [];\n\tthis.elem = elem;\n\tthis.initDynamicPropertyContainer(elem);\n\tthis.initModifierProperties(elem, data);\n\tthis.frameId = initialDefaultFrame;\n\tthis.closed = false;\n\tthis.k = false;\n\tif (this.dynamicProperties.length) {\n\t\tthis.k = true;\n\t} else {\n\t\tthis.getValue(true);\n\t}\n};\nShapeModifier.prototype.processKeys = function () {\n\tif (this.elem.globalData.frameId === this.frameId) {\n\t\treturn;\n\t}\n\tthis.frameId = this.elem.globalData.frameId;\n\tthis.iterateDynamicProperties();\n};\n\nextendPrototype([DynamicPropertyContainer], ShapeModifier);\n\nfunction TrimModifier() {\n}\nextendPrototype([ShapeModifier], TrimModifier);\nTrimModifier.prototype.initModifierProperties = function (elem, data) {\n\tthis.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n\tthis.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n\tthis.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n\tthis.sValue = 0;\n\tthis.eValue = 0;\n\tthis.getValue = this.processKeys;\n\tthis.m = data.m;\n\tthis._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n};\n\nTrimModifier.prototype.addShapeToModifier = function (shapeData) {\n\tshapeData.pathsData = [];\n};\n\nTrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n\tvar segments = [];\n\tif (e <= 1) {\n\t\tsegments.push({\n\t\t\ts: s,\n\t\t\te: e,\n\t\t});\n\t} else if (s >= 1) {\n\t\tsegments.push({\n\t\t\ts: s - 1,\n\t\t\te: e - 1,\n\t\t});\n\t} else {\n\t\tsegments.push({\n\t\t\ts: s,\n\t\t\te: 1,\n\t\t});\n\t\tsegments.push({\n\t\t\ts: 0,\n\t\t\te: e - 1,\n\t\t});\n\t}\n\tvar shapeSegments = [];\n\tvar i;\n\tvar len = segments.length;\n\tvar segmentOb;\n\tfor (i = 0; i < len; i += 1) {\n\t\tsegmentOb = segments[i];\n\t\tif (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n\t\t\tvar shapeS;\n\t\t\tvar shapeE;\n\t\t\tif (segmentOb.s * totalModifierLength <= addedLength) {\n\t\t\t\tshapeS = 0;\n\t\t\t} else {\n\t\t\t\tshapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n\t\t\t}\n\t\t\tif (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n\t\t\t\tshapeE = 1;\n\t\t\t} else {\n\t\t\t\tshapeE = ((segmentOb.e * totalModifierLength - addedLength) / shapeLength);\n\t\t\t}\n\t\t\tshapeSegments.push([shapeS, shapeE]);\n\t\t}\n\t}\n\tif (!shapeSegments.length) {\n\t\tshapeSegments.push([0, 0]);\n\t}\n\treturn shapeSegments;\n};\n\nTrimModifier.prototype.releasePathsData = function (pathsData) {\n\tvar i;\n\tvar len = pathsData.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tsegmentsLengthPool.release(pathsData[i]);\n\t}\n\tpathsData.length = 0;\n\treturn pathsData;\n};\n\nTrimModifier.prototype.processShapes = function (_isFirstFrame) {\n\tvar s;\n\tvar e;\n\tif (this._mdf || _isFirstFrame) {\n\t\tvar o = (this.o.v % 360) / 360;\n\t\tif (o < 0) {\n\t\t\to += 1;\n\t\t}\n\t\tif (this.s.v > 1) {\n\t\t\ts = 1 + o;\n\t\t} else if (this.s.v < 0) {\n\t\t\ts = 0 + o;\n\t\t} else {\n\t\t\ts = this.s.v + o;\n\t\t}\n\t\tif (this.e.v > 1) {\n\t\t\te = 1 + o;\n\t\t} else if (this.e.v < 0) {\n\t\t\te = 0 + o;\n\t\t} else {\n\t\t\te = this.e.v + o;\n\t\t}\n\n\t\tif (s > e) {\n\t\t\tvar _s = s;\n\t\t\ts = e;\n\t\t\te = _s;\n\t\t}\n\t\ts = Math.round(s * 10000) * 0.0001;\n\t\te = Math.round(e * 10000) * 0.0001;\n\t\tthis.sValue = s;\n\t\tthis.eValue = e;\n\t} else {\n\t\ts = this.sValue;\n\t\te = this.eValue;\n\t}\n\tvar shapePaths;\n\tvar i;\n\tvar len = this.shapes.length;\n\tvar j;\n\tvar jLen;\n\tvar pathsData;\n\tvar pathData;\n\tvar totalShapeLength;\n\tvar totalModifierLength = 0;\n\n\tif (e === s) {\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.shapes[i].localShapeCollection.releaseShapes();\n\t\t\tthis.shapes[i].shape._mdf = true;\n\t\t\tthis.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\t\t\tif (this._mdf) {\n\t\t\t\tthis.shapes[i].pathsData.length = 0;\n\t\t\t}\n\t\t}\n\t} else if (!((e === 1 && s === 0) || (e === 0 && s === 1))) {\n\t\tvar segments = [];\n\t\tvar shapeData;\n\t\tvar localShapeCollection;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tshapeData = this.shapes[i];\n\t\t\t// if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\t\t\tif (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n\t\t\t\tshapeData.shape.paths = shapeData.localShapeCollection;\n\t\t\t} else {\n\t\t\t\tshapePaths = shapeData.shape.paths;\n\t\t\t\tjLen = shapePaths._length;\n\t\t\t\ttotalShapeLength = 0;\n\t\t\t\tif (!shapeData.shape._mdf && shapeData.pathsData.length) {\n\t\t\t\t\ttotalShapeLength = shapeData.totalShapeLength;\n\t\t\t\t} else {\n\t\t\t\t\tpathsData = this.releasePathsData(shapeData.pathsData);\n\t\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\t\tpathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n\t\t\t\t\t\tpathsData.push(pathData);\n\t\t\t\t\t\ttotalShapeLength += pathData.totalLength;\n\t\t\t\t\t}\n\t\t\t\t\tshapeData.totalShapeLength = totalShapeLength;\n\t\t\t\t\tshapeData.pathsData = pathsData;\n\t\t\t\t}\n\n\t\t\t\ttotalModifierLength += totalShapeLength;\n\t\t\t\tshapeData.shape._mdf = true;\n\t\t\t}\n\t\t}\n\t\tvar shapeS = s;\n\t\tvar shapeE = e;\n\t\tvar addedLength = 0;\n\t\tvar edges;\n\t\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\t\tshapeData = this.shapes[i];\n\t\t\tif (shapeData.shape._mdf) {\n\t\t\t\tlocalShapeCollection = shapeData.localShapeCollection;\n\t\t\t\tlocalShapeCollection.releaseShapes();\n\t\t\t\t// if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\t\t\t\tif (this.m === 2 && len > 1) {\n\t\t\t\t\tedges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n\t\t\t\t\taddedLength += shapeData.totalShapeLength;\n\t\t\t\t} else {\n\t\t\t\t\tedges = [[shapeS, shapeE]];\n\t\t\t\t}\n\t\t\t\tjLen = edges.length;\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tshapeS = edges[j][0];\n\t\t\t\t\tshapeE = edges[j][1];\n\t\t\t\t\tsegments.length = 0;\n\t\t\t\t\tif (shapeE <= 1) {\n\t\t\t\t\t\tsegments.push({\n\t\t\t\t\t\t\ts: shapeData.totalShapeLength * shapeS,\n\t\t\t\t\t\t\te: shapeData.totalShapeLength * shapeE,\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (shapeS >= 1) {\n\t\t\t\t\t\tsegments.push({\n\t\t\t\t\t\t\ts: shapeData.totalShapeLength * (shapeS - 1),\n\t\t\t\t\t\t\te: shapeData.totalShapeLength * (shapeE - 1),\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsegments.push({\n\t\t\t\t\t\t\ts: shapeData.totalShapeLength * shapeS,\n\t\t\t\t\t\t\te: shapeData.totalShapeLength,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tsegments.push({\n\t\t\t\t\t\t\ts: 0,\n\t\t\t\t\t\t\te: shapeData.totalShapeLength * (shapeE - 1),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tvar newShapesData = this.addShapes(shapeData, segments[0]);\n\t\t\t\t\tif (segments[0].s !== segments[0].e) {\n\t\t\t\t\t\tif (segments.length > 1) {\n\t\t\t\t\t\t\tvar lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\t\t\t\t\t\t\tif (lastShapeInCollection.c) {\n\t\t\t\t\t\t\t\tvar lastShape = newShapesData.pop();\n\t\t\t\t\t\t\t\tthis.addPaths(newShapesData, localShapeCollection);\n\t\t\t\t\t\t\t\tnewShapesData = this.addShapes(shapeData, segments[1], lastShape);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.addPaths(newShapesData, localShapeCollection);\n\t\t\t\t\t\t\t\tnewShapesData = this.addShapes(shapeData, segments[1]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.addPaths(newShapesData, localShapeCollection);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshapeData.shape.paths = localShapeCollection;\n\t\t\t}\n\t\t}\n\t} else if (this._mdf) {\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t// Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n\t\t\t// Don't remove this even if it's losing cached info.\n\t\t\tthis.shapes[i].pathsData.length = 0;\n\t\t\tthis.shapes[i].shape._mdf = true;\n\t\t}\n\t}\n};\n\nTrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n\tvar i;\n\tvar len = newPaths.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tlocalShapeCollection.addShape(newPaths[i]);\n\t}\n};\n\nTrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n\tshapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n\tshapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\tif (newShape) {\n\t\tshapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n\t}\n\tshapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n};\n\nTrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n\tshapePath.setXYAt(points[1], points[5], 'o', pos);\n\tshapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\tif (newShape) {\n\t\tshapePath.setXYAt(points[0], points[4], 'v', pos);\n\t}\n\tshapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n};\n\nTrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n\tvar pathsData = shapeData.pathsData;\n\tvar shapePaths = shapeData.shape.paths.shapes;\n\tvar i;\n\tvar len = shapeData.shape.paths._length;\n\tvar j;\n\tvar jLen;\n\tvar addedLength = 0;\n\tvar currentLengthData;\n\tvar segmentCount;\n\tvar lengths;\n\tvar segment;\n\tvar shapes = [];\n\tvar initPos;\n\tvar newShape = true;\n\tif (!shapePath) {\n\t\tshapePath = shapePool.newElement();\n\t\tsegmentCount = 0;\n\t\tinitPos = 0;\n\t} else {\n\t\tsegmentCount = shapePath._length;\n\t\tinitPos = shapePath._length;\n\t}\n\tshapes.push(shapePath);\n\tfor (i = 0; i < len; i += 1) {\n\t\tlengths = pathsData[i].lengths;\n\t\tshapePath.c = shapePaths[i].c;\n\t\tjLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\t\tfor (j = 1; j < jLen; j += 1) {\n\t\t\tcurrentLengthData = lengths[j - 1];\n\t\t\tif (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n\t\t\t\taddedLength += currentLengthData.addedLength;\n\t\t\t\tshapePath.c = false;\n\t\t\t} else if (addedLength > shapeSegment.e) {\n\t\t\t\tshapePath.c = false;\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tif (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n\t\t\t\t\tthis.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n\t\t\t\t\tnewShape = false;\n\t\t\t\t} else {\n\t\t\t\t\tsegment = 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\t\t\t\t\tthis.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\n\t\t\t\t\t// this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\t\t\t\t\tnewShape = false;\n\t\t\t\t\tshapePath.c = false;\n\t\t\t\t}\n\t\t\t\taddedLength += currentLengthData.addedLength;\n\t\t\t\tsegmentCount += 1;\n\t\t\t}\n\t\t}\n\t\tif (shapePaths[i].c && lengths.length) {\n\t\t\tcurrentLengthData = lengths[j - 1];\n\t\t\tif (addedLength <= shapeSegment.e) {\n\t\t\t\tvar segmentLength = lengths[j - 1].addedLength;\n\t\t\t\tif (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n\t\t\t\t\tthis.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n\t\t\t\t\tnewShape = false;\n\t\t\t\t} else {\n\t\t\t\t\tsegment = 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\t\t\t\t\tthis.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\n\t\t\t\t\t// this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\t\t\t\t\tnewShape = false;\n\t\t\t\t\tshapePath.c = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tshapePath.c = false;\n\t\t\t}\n\t\t\taddedLength += currentLengthData.addedLength;\n\t\t\tsegmentCount += 1;\n\t\t}\n\t\tif (shapePath._length) {\n\t\t\tshapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n\t\t\tshapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n\t\t}\n\t\tif (addedLength > shapeSegment.e) {\n\t\t\tbreak;\n\t\t}\n\t\tif (i < len - 1) {\n\t\t\tshapePath = shapePool.newElement();\n\t\t\tnewShape = true;\n\t\t\tshapes.push(shapePath);\n\t\t\tsegmentCount = 0;\n\t\t}\n\t}\n\treturn shapes;\n};\n\nfunction PuckerAndBloatModifier() {}\nextendPrototype([ShapeModifier], PuckerAndBloatModifier);\nPuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n\tthis.getValue = this.processKeys;\n\tthis.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n\tthis._isAnimated = !!this.amount.effectsSequence.length;\n};\n\nPuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n\tvar percent = amount / 100;\n\tvar centerPoint = [0, 0];\n\tvar pathLength = path._length;\n\tvar i = 0;\n\tfor (i = 0; i < pathLength; i += 1) {\n\t\tcenterPoint[0] += path.v[i][0];\n\t\tcenterPoint[1] += path.v[i][1];\n\t}\n\tcenterPoint[0] /= pathLength;\n\tcenterPoint[1] /= pathLength;\n\tvar clonedPath = shapePool.newElement();\n\tclonedPath.c = path.c;\n\tvar vX;\n\tvar vY;\n\tvar oX;\n\tvar oY;\n\tvar iX;\n\tvar iY;\n\tfor (i = 0; i < pathLength; i += 1) {\n\t\tvX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n\t\tvY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n\t\toX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n\t\toY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n\t\tiX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n\t\tiY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n\t\tclonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n\t}\n\treturn clonedPath;\n};\n\nPuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n\tvar shapePaths;\n\tvar i;\n\tvar len = this.shapes.length;\n\tvar j;\n\tvar jLen;\n\tvar amount = this.amount.v;\n\n\tif (amount !== 0) {\n\t\tvar shapeData;\n\t\tvar localShapeCollection;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tshapeData = this.shapes[i];\n\t\t\tlocalShapeCollection = shapeData.localShapeCollection;\n\t\t\tif (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n\t\t\t\tlocalShapeCollection.releaseShapes();\n\t\t\t\tshapeData.shape._mdf = true;\n\t\t\t\tshapePaths = shapeData.shape.paths.shapes;\n\t\t\t\tjLen = shapeData.shape.paths._length;\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tlocalShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n\t\t\t\t}\n\t\t\t}\n\t\t\tshapeData.shape.paths = shapeData.localShapeCollection;\n\t\t}\n\t}\n\tif (!this.dynamicProperties.length) {\n\t\tthis._mdf = false;\n\t}\n};\n\nconst TransformPropertyFactory = (function () {\n\tvar defaultVector = [0, 0];\n\n\tfunction applyToMatrix(mat) {\n\t\tvar _mdf = this._mdf;\n\t\tthis.iterateDynamicProperties();\n\t\tthis._mdf = this._mdf || _mdf;\n\t\tif (this.a) {\n\t\t\tmat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n\t\t}\n\t\tif (this.s) {\n\t\t\tmat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n\t\t}\n\t\tif (this.sk) {\n\t\t\tmat.skewFromAxis(-this.sk.v, this.sa.v);\n\t\t}\n\t\tif (this.r) {\n\t\t\tmat.rotate(-this.r.v);\n\t\t} else {\n\t\t\tmat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\n\t\t\t\t.rotateY(this.or.v[1])\n\t\t\t\t.rotateX(this.or.v[0]);\n\t\t}\n\t\tif (this.data.p.s) {\n\t\t\tif (this.data.p.z) {\n\t\t\t\tmat.translate(this.px.v, this.py.v, -this.pz.v);\n\t\t\t} else {\n\t\t\t\tmat.translate(this.px.v, this.py.v, 0);\n\t\t\t}\n\t\t} else {\n\t\t\tmat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n\t\t}\n\t}\n\tfunction processKeys(forceRender) {\n\t\tif (this.elem.globalData.frameId === this.frameId) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._isDirty) {\n\t\t\tthis.precalculateMatrix();\n\t\t\tthis._isDirty = false;\n\t\t}\n\n\t\tthis.iterateDynamicProperties();\n\n\t\tif (this._mdf || forceRender) {\n\t\t\tvar frameRate;\n\t\t\tthis.v.cloneFromProps(this.pre.props);\n\t\t\tif (this.appliedTransformations < 1) {\n\t\t\t\tthis.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n\t\t\t}\n\t\t\tif (this.appliedTransformations < 2) {\n\t\t\t\tthis.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n\t\t\t}\n\t\t\tif (this.sk && this.appliedTransformations < 3) {\n\t\t\t\tthis.v.skewFromAxis(-this.sk.v, this.sa.v);\n\t\t\t}\n\t\t\tif (this.r && this.appliedTransformations < 4) {\n\t\t\t\tthis.v.rotate(-this.r.v);\n\t\t\t} else if (!this.r && this.appliedTransformations < 4) {\n\t\t\t\tthis.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\n\t\t\t\t\t.rotateY(this.or.v[1])\n\t\t\t\t\t.rotateX(this.or.v[0]);\n\t\t\t}\n\t\t\tif (this.autoOriented) {\n\t\t\t\tvar v1;\n\t\t\t\tvar v2;\n\t\t\t\tframeRate = this.elem.globalData.frameRate;\n\t\t\t\tif (this.p && this.p.keyframes && this.p.getValueAtTime) {\n\t\t\t\t\tif (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n\t\t\t\t\t\tv1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n\t\t\t\t\t\tv2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n\t\t\t\t\t} else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n\t\t\t\t\t\tv1 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t / frameRate), 0);\n\t\t\t\t\t\tv2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tv1 = this.p.pv;\n\t\t\t\t\t\tv2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n\t\t\t\t\t}\n\t\t\t\t} else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n\t\t\t\t\tv1 = [];\n\t\t\t\t\tv2 = [];\n\t\t\t\t\tvar px = this.px;\n\t\t\t\t\tvar py = this.py;\n\t\t\t\t\tif (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n\t\t\t\t\t\tv1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n\t\t\t\t\t\tv1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n\t\t\t\t\t\tv2[0] = px.getValueAtTime((px.keyframes[0].t) / frameRate, 0);\n\t\t\t\t\t\tv2[1] = py.getValueAtTime((py.keyframes[0].t) / frameRate, 0);\n\t\t\t\t\t} else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n\t\t\t\t\t\tv1[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t / frameRate), 0);\n\t\t\t\t\t\tv1[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t / frameRate), 0);\n\t\t\t\t\t\tv2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n\t\t\t\t\t\tv2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tv1 = [px.pv, py.pv];\n\t\t\t\t\t\tv2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n\t\t\t\t\t\tv2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tv2 = defaultVector;\n\t\t\t\t\tv1 = v2;\n\t\t\t\t}\n\t\t\t\tthis.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n\t\t\t}\n\t\t\tif (this.data.p && this.data.p.s) {\n\t\t\t\tif (this.data.p.z) {\n\t\t\t\t\tthis.v.translate(this.px.v, this.py.v, -this.pz.v);\n\t\t\t\t} else {\n\t\t\t\t\tthis.v.translate(this.px.v, this.py.v, 0);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n\t\t\t}\n\t\t}\n\t\tthis.frameId = this.elem.globalData.frameId;\n\t}\n\n\tfunction precalculateMatrix() {\n\t\tif (!this.a.k) {\n\t\t\tthis.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n\t\t\tthis.appliedTransformations = 1;\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\t\tif (!this.s.effectsSequence.length) {\n\t\t\tthis.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n\t\t\tthis.appliedTransformations = 2;\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\t\tif (this.sk) {\n\t\t\tif (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n\t\t\t\tthis.pre.skewFromAxis(-this.sk.v, this.sa.v);\n\t\t\t\tthis.appliedTransformations = 3;\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (this.r) {\n\t\t\tif (!this.r.effectsSequence.length) {\n\t\t\t\tthis.pre.rotate(-this.r.v);\n\t\t\t\tthis.appliedTransformations = 4;\n\t\t\t}\n\t\t} else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n\t\t\tthis.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\n\t\t\t\t.rotateY(this.or.v[1])\n\t\t\t\t.rotateX(this.or.v[0]);\n\t\t\tthis.appliedTransformations = 4;\n\t\t}\n\t}\n\n\tfunction autoOrient() {\n\t\t//\n\t\t// var prevP = this.getValueAtTime();\n\t}\n\n\tfunction addDynamicProperty(prop) {\n\t\tthis._addDynamicProperty(prop);\n\t\tthis.elem.addDynamicProperty(prop);\n\t\tthis._isDirty = true;\n\t}\n\n\tfunction TransformProperty(elem, data, container) {\n\t\tthis.elem = elem;\n\t\tthis.frameId = -1;\n\t\tthis.propType = 'transform';\n\t\tthis.data = data;\n\t\tthis.v = new Matrix();\n\t\t// Precalculated matrix with non animated properties\n\t\tthis.pre = new Matrix();\n\t\tthis.appliedTransformations = 0;\n\t\tthis.initDynamicPropertyContainer(container || elem);\n\t\tif (data.p && data.p.s) {\n\t\t\tthis.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n\t\t\tthis.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\t\t\tif (data.p.z) {\n\t\t\t\tthis.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.p = PropertyFactory.getProp(elem, data.p || { k: [0, 0, 0] }, 1, 0, this);\n\t\t}\n\t\tif (data.rx) {\n\t\t\tthis.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n\t\t\tthis.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n\t\t\tthis.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\t\t\tif (data.or.k[0].ti) {\n\t\t\t\tvar i;\n\t\t\t\tvar len = data.or.k.length;\n\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\tdata.or.k[i].to = null;\n\t\t\t\t\tdata.or.k[i].ti = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this);\n\t\t\t// sh Indicates it needs to be capped between -180 and 180\n\t\t\tthis.or.sh = true;\n\t\t} else {\n\t\t\tthis.r = PropertyFactory.getProp(elem, data.r || { k: 0 }, 0, degToRads, this);\n\t\t}\n\t\tif (data.sk) {\n\t\t\tthis.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n\t\t\tthis.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n\t\t}\n\t\tthis.a = PropertyFactory.getProp(elem, data.a || { k: [0, 0, 0] }, 1, 0, this);\n\t\tthis.s = PropertyFactory.getProp(elem, data.s || { k: [100, 100, 100] }, 1, 0.01, this);\n\t\t// 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\t\tif (data.o) {\n\t\t\tthis.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n\t\t} else {\n\t\t\tthis.o = { _mdf: false, v: 1 };\n\t\t}\n\t\tthis._isDirty = true;\n\t\tif (!this.dynamicProperties.length) {\n\t\t\tthis.getValue(true);\n\t\t}\n\t}\n\n\tTransformProperty.prototype = {\n\t\tapplyToMatrix: applyToMatrix,\n\t\tgetValue: processKeys,\n\t\tprecalculateMatrix: precalculateMatrix,\n\t\tautoOrient: autoOrient,\n\t};\n\n\textendPrototype([DynamicPropertyContainer], TransformProperty);\n\tTransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n\tTransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n\tfunction getTransformProperty(elem, data, container) {\n\t\treturn new TransformProperty(elem, data, container);\n\t}\n\n\treturn {\n\t\tgetTransformProperty: getTransformProperty,\n\t};\n}());\n\nfunction RepeaterModifier() {}\nextendPrototype([ShapeModifier], RepeaterModifier);\n\nRepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n\tthis.getValue = this.processKeys;\n\tthis.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n\tthis.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n\tthis.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n\tthis.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n\tthis.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n\tthis.data = data;\n\tif (!this.dynamicProperties.length) {\n\t\tthis.getValue(true);\n\t}\n\tthis._isAnimated = !!this.dynamicProperties.length;\n\tthis.pMatrix = new Matrix();\n\tthis.rMatrix = new Matrix();\n\tthis.sMatrix = new Matrix();\n\tthis.tMatrix = new Matrix();\n\tthis.matrix = new Matrix();\n};\n\nRepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n\tvar dir = inv ? -1 : 1;\n\tvar scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n\tvar scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n\tpMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n\trMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n\trMatrix.rotate(-transform.r.v * dir * perc);\n\trMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n\tsMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n\tsMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n\tsMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n};\n\nRepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n\tthis.elem = elem;\n\tthis.arr = arr;\n\tthis.pos = pos;\n\tthis.elemsData = elemsData;\n\tthis._currentCopies = 0;\n\tthis._elements = [];\n\tthis._groups = [];\n\tthis.frameId = -1;\n\tthis.initDynamicPropertyContainer(elem);\n\tthis.initModifierProperties(elem, arr[pos]);\n\twhile (pos > 0) {\n\t\tpos -= 1;\n\t\t// this._elements.unshift(arr.splice(pos,1)[0]);\n\t\tthis._elements.unshift(arr[pos]);\n\t}\n\tif (this.dynamicProperties.length) {\n\t\tthis.k = true;\n\t} else {\n\t\tthis.getValue(true);\n\t}\n};\n\nRepeaterModifier.prototype.resetElements = function (elements) {\n\tvar i;\n\tvar len = elements.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\telements[i]._processed = false;\n\t\tif (elements[i].ty === 'gr') {\n\t\t\tthis.resetElements(elements[i].it);\n\t\t}\n\t}\n};\n\nRepeaterModifier.prototype.cloneElements = function (elements) {\n\tvar newElements = JSON.parse(JSON.stringify(elements));\n\tthis.resetElements(newElements);\n\treturn newElements;\n};\n\nRepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n\tvar i;\n\tvar len = elements.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\telements[i]._render = renderFlag;\n\t\tif (elements[i].ty === 'gr') {\n\t\t\tthis.changeGroupRender(elements[i].it, renderFlag);\n\t\t}\n\t}\n};\n\nRepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n\tvar items;\n\tvar itemsTransform;\n\tvar i;\n\tvar dir;\n\tvar cont;\n\tvar hasReloaded = false;\n\tif (this._mdf || _isFirstFrame) {\n\t\tvar copies = Math.ceil(this.c.v);\n\t\tif (this._groups.length < copies) {\n\t\t\twhile (this._groups.length < copies) {\n\t\t\t\tvar group = {\n\t\t\t\t\tit: this.cloneElements(this._elements),\n\t\t\t\t\tty: 'gr',\n\t\t\t\t};\n\t\t\t\tgroup.it.push({\n\t\t\t\t\ta: { a: 0, ix: 1, k: [0, 0] }, nm: 'Transform', o: { a: 0, ix: 7, k: 100 }, p: { a: 0, ix: 2, k: [0, 0] }, r: { a: 1, ix: 6, k: [{ s: 0, e: 0, t: 0 }, { s: 0, e: 0, t: 1 }] }, s: { a: 0, ix: 3, k: [100, 100] }, sa: { a: 0, ix: 5, k: 0 }, sk: { a: 0, ix: 4, k: 0 }, ty: 'tr',\n\t\t\t\t});\n\n\t\t\t\tthis.arr.splice(0, 0, group);\n\t\t\t\tthis._groups.splice(0, 0, group);\n\t\t\t\tthis._currentCopies += 1;\n\t\t\t}\n\t\t\tthis.elem.reloadShapes();\n\t\t\thasReloaded = true;\n\t\t}\n\t\tcont = 0;\n\t\tvar renderFlag;\n\t\tfor (i = 0; i <= this._groups.length - 1; i += 1) {\n\t\t\trenderFlag = cont < copies;\n\t\t\tthis._groups[i]._render = renderFlag;\n\t\t\tthis.changeGroupRender(this._groups[i].it, renderFlag);\n\t\t\tif (!renderFlag) {\n\t\t\t\tvar elems = this.elemsData[i].it;\n\t\t\t\tvar transformData = elems[elems.length - 1];\n\t\t\t\tif (transformData.transform.op.v !== 0) {\n\t\t\t\t\ttransformData.transform.op._mdf = true;\n\t\t\t\t\ttransformData.transform.op.v = 0;\n\t\t\t\t} else {\n\t\t\t\t\ttransformData.transform.op._mdf = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tcont += 1;\n\t\t}\n\n\t\tthis._currentCopies = copies;\n\t\t/// /\n\n\t\tvar offset = this.o.v;\n\t\tvar offsetModulo = offset % 1;\n\t\tvar roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n\t\tvar pProps = this.pMatrix.props;\n\t\tvar rProps = this.rMatrix.props;\n\t\tvar sProps = this.sMatrix.props;\n\t\tthis.pMatrix.reset();\n\t\tthis.rMatrix.reset();\n\t\tthis.sMatrix.reset();\n\t\tthis.tMatrix.reset();\n\t\tthis.matrix.reset();\n\t\tvar iteration = 0;\n\n\t\tif (offset > 0) {\n\t\t\twhile (iteration < roundOffset) {\n\t\t\t\tthis.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n\t\t\t\titeration += 1;\n\t\t\t}\n\t\t\tif (offsetModulo) {\n\t\t\t\tthis.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n\t\t\t\titeration += offsetModulo;\n\t\t\t}\n\t\t} else if (offset < 0) {\n\t\t\twhile (iteration > roundOffset) {\n\t\t\t\tthis.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n\t\t\t\titeration -= 1;\n\t\t\t}\n\t\t\tif (offsetModulo) {\n\t\t\t\tthis.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n\t\t\t\titeration -= offsetModulo;\n\t\t\t}\n\t\t}\n\t\ti = this.data.m === 1 ? 0 : this._currentCopies - 1;\n\t\tdir = this.data.m === 1 ? 1 : -1;\n\t\tcont = this._currentCopies;\n\t\tvar j;\n\t\tvar jLen;\n\t\twhile (cont) {\n\t\t\titems = this.elemsData[i].it;\n\t\t\titemsTransform = items[items.length - 1].transform.mProps.v.props;\n\t\t\tjLen = itemsTransform.length;\n\t\t\titems[items.length - 1].transform.mProps._mdf = true;\n\t\t\titems[items.length - 1].transform.op._mdf = true;\n\t\t\titems[items.length - 1].transform.op.v = this._currentCopies === 1\n\t\t\t\t? this.so.v\n\t\t\t\t: this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n\t\t\tif (iteration !== 0) {\n\t\t\t\tif ((i !== 0 && dir === 1) || (i !== this._currentCopies - 1 && dir === -1)) {\n\t\t\t\t\tthis.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n\t\t\t\t}\n\t\t\t\tthis.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\t\t\t\tthis.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\t\t\t\tthis.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\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\titemsTransform[j] = this.matrix.props[j];\n\t\t\t\t}\n\t\t\t\tthis.matrix.reset();\n\t\t\t} else {\n\t\t\t\tthis.matrix.reset();\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\titemsTransform[j] = this.matrix.props[j];\n\t\t\t\t}\n\t\t\t}\n\t\t\titeration += 1;\n\t\t\tcont -= 1;\n\t\t\ti += dir;\n\t\t}\n\t} else {\n\t\tcont = this._currentCopies;\n\t\ti = 0;\n\t\tdir = 1;\n\t\twhile (cont) {\n\t\t\titems = this.elemsData[i].it;\n\t\t\titemsTransform = items[items.length - 1].transform.mProps.v.props;\n\t\t\titems[items.length - 1].transform.mProps._mdf = false;\n\t\t\titems[items.length - 1].transform.op._mdf = false;\n\t\t\tcont -= 1;\n\t\t\ti += dir;\n\t\t}\n\t}\n\treturn hasReloaded;\n};\n\nRepeaterModifier.prototype.addShape = function () {};\n\nfunction RoundCornersModifier() {}\nextendPrototype([ShapeModifier], RoundCornersModifier);\nRoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n\tthis.getValue = this.processKeys;\n\tthis.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n\tthis._isAnimated = !!this.rd.effectsSequence.length;\n};\n\nRoundCornersModifier.prototype.processPath = function (path, round) {\n\tvar clonedPath = shapePool.newElement();\n\tclonedPath.c = path.c;\n\tvar i;\n\tvar len = path._length;\n\tvar currentV;\n\tvar currentI;\n\tvar currentO;\n\tvar closerV;\n\tvar distance;\n\tvar newPosPerc;\n\tvar index = 0;\n\tvar vX;\n\tvar vY;\n\tvar oX;\n\tvar oY;\n\tvar iX;\n\tvar iY;\n\tfor (i = 0; i < len; i += 1) {\n\t\tcurrentV = path.v[i];\n\t\tcurrentO = path.o[i];\n\t\tcurrentI = path.i[i];\n\t\tif (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n\t\t\tif ((i === 0 || i === len - 1) && !path.c) {\n\t\t\t\tclonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n\t\t\t\t/* clonedPath.v[index] = currentV;\n                clonedPath.o[index] = currentO;\n                clonedPath.i[index] = currentI; */\n\t\t\t\tindex += 1;\n\t\t\t} else {\n\t\t\t\tif (i === 0) {\n\t\t\t\t\tcloserV = path.v[len - 1];\n\t\t\t\t} else {\n\t\t\t\t\tcloserV = path.v[i - 1];\n\t\t\t\t}\n\t\t\t\tdistance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n\t\t\t\tnewPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n\t\t\t\tiX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n\t\t\t\tvX = iX;\n\t\t\t\tiY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n\t\t\t\tvY = iY;\n\t\t\t\toX = vX - (vX - currentV[0]) * roundCorner;\n\t\t\t\toY = vY - (vY - currentV[1]) * roundCorner;\n\t\t\t\tclonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n\t\t\t\tindex += 1;\n\n\t\t\t\tif (i === len - 1) {\n\t\t\t\t\tcloserV = path.v[0];\n\t\t\t\t} else {\n\t\t\t\t\tcloserV = path.v[i + 1];\n\t\t\t\t}\n\t\t\t\tdistance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n\t\t\t\tnewPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n\t\t\t\toX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n\t\t\t\tvX = oX;\n\t\t\t\toY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n\t\t\t\tvY = oY;\n\t\t\t\tiX = vX - (vX - currentV[0]) * roundCorner;\n\t\t\t\tiY = vY - (vY - currentV[1]) * roundCorner;\n\t\t\t\tclonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n\t\t\t\tindex += 1;\n\t\t\t}\n\t\t} else {\n\t\t\tclonedPath.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\t\t\tindex += 1;\n\t\t}\n\t}\n\treturn clonedPath;\n};\n\nRoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n\tvar shapePaths;\n\tvar i;\n\tvar len = this.shapes.length;\n\tvar j;\n\tvar jLen;\n\tvar rd = this.rd.v;\n\n\tif (rd !== 0) {\n\t\tvar shapeData;\n\t\tvar localShapeCollection;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tshapeData = this.shapes[i];\n\t\t\tlocalShapeCollection = shapeData.localShapeCollection;\n\t\t\tif (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n\t\t\t\tlocalShapeCollection.releaseShapes();\n\t\t\t\tshapeData.shape._mdf = true;\n\t\t\t\tshapePaths = shapeData.shape.paths.shapes;\n\t\t\t\tjLen = shapeData.shape.paths._length;\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tlocalShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n\t\t\t\t}\n\t\t\t}\n\t\t\tshapeData.shape.paths = shapeData.localShapeCollection;\n\t\t}\n\t}\n\tif (!this.dynamicProperties.length) {\n\t\tthis._mdf = false;\n\t}\n};\n\nfunction getFontProperties(fontData) {\n\tvar styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n\n\tvar fWeight = 'normal'; var\n\t\tfStyle = 'normal';\n\tvar len = styles.length;\n\tvar styleName;\n\tfor (var i = 0; i < len; i += 1) {\n\t\tstyleName = styles[i].toLowerCase();\n\t\tswitch (styleName) {\n\t\t\tcase 'italic':\n\t\t\t\tfStyle = 'italic';\n\t\t\t\tbreak;\n\t\t\tcase 'bold':\n\t\t\t\tfWeight = '700';\n\t\t\t\tbreak;\n\t\t\tcase 'black':\n\t\t\t\tfWeight = '900';\n\t\t\t\tbreak;\n\t\t\tcase 'medium':\n\t\t\t\tfWeight = '500';\n\t\t\t\tbreak;\n\t\t\tcase 'regular':\n\t\t\tcase 'normal':\n\t\t\t\tfWeight = '400';\n\t\t\t\tbreak;\n\t\t\tcase 'light':\n\t\t\tcase 'thin':\n\t\t\t\tfWeight = '200';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn {\n\t\tstyle: fStyle,\n\t\tweight: fontData.fWeight || fWeight,\n\t};\n}\n\nconst FontManager = (function () {\n\tvar maxWaitingTime = 5000;\n\tvar emptyChar = {\n\t\tw: 0,\n\t\tsize: 0,\n\t\tshapes: [],\n\t\tdata: {\n\t\t\tshapes: [],\n\t\t},\n\t};\n\tvar combinedCharacters = [];\n\t// Hindi characters\n\tcombinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366,\n\t\t2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379,\n\t\t2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n\n\tvar surrogateModifiers = [\n\t\t'd83cdffb',\n\t\t'd83cdffc',\n\t\t'd83cdffd',\n\t\t'd83cdffe',\n\t\t'd83cdfff',\n\t];\n\n\tvar zeroWidthJoiner = [65039, 8205];\n\n\tfunction trimFontOptions(font) {\n\t\tvar familyArray = font.split(',');\n\t\tvar i;\n\t\tvar len = familyArray.length;\n\t\tvar enabledFamilies = [];\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n\t\t\t\tenabledFamilies.push(familyArray[i]);\n\t\t\t}\n\t\t}\n\t\treturn enabledFamilies.join(',');\n\t}\n\n\tfunction setUpNode(font, family) {\n\t\tvar parentNode = createTag('span');\n\t\t// Node is invisible to screen readers.\n\t\tparentNode.setAttribute('aria-hidden', true);\n\t\tparentNode.style.fontFamily = family;\n\t\tvar node = createTag('span');\n\t\t// Characters that vary significantly among different fonts\n\t\tnode.innerText = 'giItT1WQy@!-/#';\n\t\t// Visible - so we can measure it - but not on the screen\n\t\tparentNode.style.position = 'absolute';\n\t\tparentNode.style.left = '-10000px';\n\t\tparentNode.style.top = '-10000px';\n\t\t// Large font size makes even subtle changes obvious\n\t\tparentNode.style.fontSize = '300px';\n\t\t// Reset any font properties\n\t\tparentNode.style.fontVariant = 'normal';\n\t\tparentNode.style.fontStyle = 'normal';\n\t\tparentNode.style.fontWeight = 'normal';\n\t\tparentNode.style.letterSpacing = '0';\n\t\tparentNode.appendChild(node);\n\t\tdocument.body.appendChild(parentNode);\n\n\t\t// Remember width with no applied web font\n\t\tvar width = node.offsetWidth;\n\t\tnode.style.fontFamily = trimFontOptions(font) + ', ' + family;\n\t\treturn { node: node, w: width, parent: parentNode };\n\t}\n\n\tfunction checkLoadedFonts() {\n\t\tvar i;\n\t\tvar len = this.fonts.length;\n\t\tvar node;\n\t\tvar w;\n\t\tvar loadedCount = len;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (this.fonts[i].loaded) {\n\t\t\t\tloadedCount -= 1;\n\t\t\t} else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n\t\t\t\tthis.fonts[i].loaded = true;\n\t\t\t} else {\n\t\t\t\tnode = this.fonts[i].monoCase.node;\n\t\t\t\tw = this.fonts[i].monoCase.w;\n\t\t\t\tif (node.offsetWidth !== w) {\n\t\t\t\t\tloadedCount -= 1;\n\t\t\t\t\tthis.fonts[i].loaded = true;\n\t\t\t\t} else {\n\t\t\t\t\tnode = this.fonts[i].sansCase.node;\n\t\t\t\t\tw = this.fonts[i].sansCase.w;\n\t\t\t\t\tif (node.offsetWidth !== w) {\n\t\t\t\t\t\tloadedCount -= 1;\n\t\t\t\t\t\tthis.fonts[i].loaded = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.fonts[i].loaded) {\n\t\t\t\t\tthis.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n\t\t\t\t\tthis.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n\t\t\tsetTimeout(this.checkLoadedFontsBinded, 20);\n\t\t} else {\n\t\t\tsetTimeout(this.setIsLoadedBinded, 10);\n\t\t}\n\t}\n\n\tfunction createHelper(fontData, def) {\n\t\tvar engine = (document.body && def) ? 'svg' : 'canvas';\n\t\tvar helper;\n\t\tvar fontProps = getFontProperties(fontData);\n\t\tif (engine === 'svg') {\n\t\t\tvar tHelper = createNS('text');\n\t\t\ttHelper.style.fontSize = '100px';\n\t\t\t// tHelper.style.fontFamily = fontData.fFamily;\n\t\t\ttHelper.setAttribute('font-family', fontData.fFamily);\n\t\t\ttHelper.setAttribute('font-style', fontProps.style);\n\t\t\ttHelper.setAttribute('font-weight', fontProps.weight);\n\t\t\ttHelper.textContent = '1';\n\t\t\tif (fontData.fClass) {\n\t\t\t\ttHelper.style.fontFamily = 'inherit';\n\t\t\t\ttHelper.setAttribute('class', fontData.fClass);\n\t\t\t} else {\n\t\t\t\ttHelper.style.fontFamily = fontData.fFamily;\n\t\t\t}\n\t\t\tdef.appendChild(tHelper);\n\t\t\thelper = tHelper;\n\t\t} else {\n\t\t\tvar tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n\t\t\ttCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n\t\t\thelper = tCanvasHelper;\n\t\t}\n\t\tfunction measure(text) {\n\t\t\tif (engine === 'svg') {\n\t\t\t\thelper.textContent = text;\n\t\t\t\treturn helper.getComputedTextLength();\n\t\t\t}\n\t\t\treturn helper.measureText(text).width;\n\t\t}\n\t\treturn {\n\t\t\tmeasureText: measure,\n\t\t};\n\t}\n\n\tfunction addFonts(fontData, defs) {\n\t\tif (!fontData) {\n\t\t\tthis.isLoaded = true;\n\t\t\treturn;\n\t\t}\n\t\tif (this.chars) {\n\t\t\tthis.isLoaded = true;\n\t\t\tthis.fonts = fontData.list;\n\t\t\treturn;\n\t\t}\n\t\tif (!document.body) {\n\t\t\tthis.isLoaded = true;\n\t\t\tfontData.list.forEach((data) => {\n\t\t\t\tdata.helper = createHelper(data);\n\t\t\t\tdata.cache = {};\n\t\t\t});\n\t\t\tthis.fonts = fontData.list;\n\t\t\treturn;\n\t\t}\n\n\t\tvar fontArr = fontData.list;\n\t\tvar i;\n\t\tvar len = fontArr.length;\n\t\tvar _pendingFonts = len;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tvar shouldLoadFont = true;\n\t\t\tvar loadedSelector;\n\t\t\tvar j;\n\t\t\tfontArr[i].loaded = false;\n\t\t\tfontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n\t\t\tfontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\t\t\tif (!fontArr[i].fPath) {\n\t\t\t\tfontArr[i].loaded = true;\n\t\t\t\t_pendingFonts -= 1;\n\t\t\t} else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n\t\t\t\tloadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n\t\t\t\tif (loadedSelector.length > 0) {\n\t\t\t\t\tshouldLoadFont = false;\n\t\t\t\t}\n\n\t\t\t\tif (shouldLoadFont) {\n\t\t\t\t\tvar s = createTag('style');\n\t\t\t\t\ts.setAttribute('f-forigin', fontArr[i].fOrigin);\n\t\t\t\t\ts.setAttribute('f-origin', fontArr[i].origin);\n\t\t\t\t\ts.setAttribute('f-family', fontArr[i].fFamily);\n\t\t\t\t\ts.type = 'text/css';\n\t\t\t\t\ts.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n\t\t\t\t\tdefs.appendChild(s);\n\t\t\t\t}\n\t\t\t} else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n\t\t\t\tloadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n\t\t\t\tfor (j = 0; j < loadedSelector.length; j += 1) {\n\t\t\t\t\tif (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n\t\t\t\t\t\t// Font is already loaded\n\t\t\t\t\t\tshouldLoadFont = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (shouldLoadFont) {\n\t\t\t\t\tvar l = createTag('link');\n\t\t\t\t\tl.setAttribute('f-forigin', fontArr[i].fOrigin);\n\t\t\t\t\tl.setAttribute('f-origin', fontArr[i].origin);\n\t\t\t\t\tl.type = 'text/css';\n\t\t\t\t\tl.rel = 'stylesheet';\n\t\t\t\t\tl.href = fontArr[i].fPath;\n\t\t\t\t\tdocument.body.appendChild(l);\n\t\t\t\t}\n\t\t\t} else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n\t\t\t\tloadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n\t\t\t\tfor (j = 0; j < loadedSelector.length; j += 1) {\n\t\t\t\t\tif (fontArr[i].fPath === loadedSelector[j].src) {\n\t\t\t\t\t\t// Font is already loaded\n\t\t\t\t\t\tshouldLoadFont = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (shouldLoadFont) {\n\t\t\t\t\tvar sc = createTag('link');\n\t\t\t\t\tsc.setAttribute('f-forigin', fontArr[i].fOrigin);\n\t\t\t\t\tsc.setAttribute('f-origin', fontArr[i].origin);\n\t\t\t\t\tsc.setAttribute('rel', 'stylesheet');\n\t\t\t\t\tsc.setAttribute('href', fontArr[i].fPath);\n\t\t\t\t\tdefs.appendChild(sc);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfontArr[i].helper = createHelper(fontArr[i], defs);\n\t\t\tfontArr[i].cache = {};\n\t\t\tthis.fonts.push(fontArr[i]);\n\t\t}\n\t\tif (_pendingFonts === 0) {\n\t\t\tthis.isLoaded = true;\n\t\t} else {\n\t\t\t// On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n\t\t\t// Adding this timeout seems to fix it\n\t\t\tsetTimeout(this.checkLoadedFonts.bind(this), 100);\n\t\t}\n\t}\n\n\tfunction addChars(chars) {\n\t\tif (!chars) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this.chars) {\n\t\t\tthis.chars = [];\n\t\t}\n\t\tvar i;\n\t\tvar len = chars.length;\n\t\tvar j;\n\t\tvar jLen = this.chars.length;\n\t\tvar found;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tj = 0;\n\t\t\tfound = false;\n\t\t\twhile (j < jLen) {\n\t\t\t\tif (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n\t\t\t\t\tfound = true;\n\t\t\t\t}\n\t\t\t\tj += 1;\n\t\t\t}\n\t\t\tif (!found) {\n\t\t\t\tthis.chars.push(chars[i]);\n\t\t\t\tjLen += 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction getCharData(char, style, font) {\n\t\tvar i = 0;\n\t\tvar len = this.chars.length;\n\t\twhile (i < len) {\n\t\t\tif (this.chars[i].ch === char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n\t\t\t\treturn this.chars[i];\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\tif (((typeof char === 'string' && char.charCodeAt(0) !== 13) || !char)\n\t\t\t&& console\n\t\t\t&& console.warn // eslint-disable-line no-console\n\t\t\t&& !this._warned\n\t\t) {\n\t\t\tthis._warned = true;\n\t\t\tconsole.warn('Missing character from exported characters list: ', char, style, font); // eslint-disable-line no-console\n\t\t}\n\t\treturn emptyChar;\n\t}\n\n\tfunction measureText(char, fontName, size) {\n\t\tvar fontData = this.getFontByName(fontName);\n\t\tvar index = char.charCodeAt(0);\n\t\tif (!fontData.cache[index + 1]) {\n\t\t\tvar tHelper = fontData.helper;\n\t\t\tif (char === ' ') {\n\t\t\t\tvar doubleSize = tHelper.measureText('|' + char + '|');\n\t\t\t\tvar singleSize = tHelper.measureText('||');\n\t\t\t\tfontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n\t\t\t} else {\n\t\t\t\tfontData.cache[index + 1] = tHelper.measureText(char) / 100;\n\t\t\t}\n\t\t}\n\t\treturn fontData.cache[index + 1] * size;\n\t}\n\n\tfunction getFontByName(name) {\n\t\tvar i = 0;\n\t\tvar len = this.fonts.length;\n\t\twhile (i < len) {\n\t\t\tif (this.fonts[i].fName === name) {\n\t\t\t\treturn this.fonts[i];\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\treturn this.fonts[0];\n\t}\n\n\tfunction isModifier(firstCharCode, secondCharCode) {\n\t\tvar sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n\t\treturn surrogateModifiers.indexOf(sum) !== -1;\n\t}\n\n\tfunction isZeroWidthJoiner(firstCharCode, secondCharCode) {\n\t\tif (!secondCharCode) {\n\t\t\treturn firstCharCode === zeroWidthJoiner[1];\n\t\t}\n\t\treturn firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\n\t}\n\n\tfunction isCombinedCharacter(char) {\n\t\treturn combinedCharacters.indexOf(char) !== -1;\n\t}\n\n\tfunction setIsLoaded() {\n\t\tthis.isLoaded = true;\n\t}\n\n\tvar Font = function () {\n\t\tthis.fonts = [];\n\t\tthis.chars = null;\n\t\tthis.typekitLoaded = 0;\n\t\tthis.isLoaded = false;\n\t\tthis._warned = false;\n\t\tthis.initTime = Date.now();\n\t\tthis.setIsLoadedBinded = this.setIsLoaded.bind(this);\n\t\tthis.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n\t};\n\tFont.isModifier = isModifier;\n\tFont.isZeroWidthJoiner = isZeroWidthJoiner;\n\tFont.isCombinedCharacter = isCombinedCharacter;\n\n\tvar fontPrototype = {\n\t\taddChars: addChars,\n\t\taddFonts: addFonts,\n\t\tgetCharData: getCharData,\n\t\tgetFontByName: getFontByName,\n\t\tmeasureText: measureText,\n\t\tcheckLoadedFonts: checkLoadedFonts,\n\t\tsetIsLoaded: setIsLoaded,\n\t};\n\n\tFont.prototype = fontPrototype;\n\n\treturn Font;\n}());\n\nfunction RenderableElement() {\n\n}\n\nRenderableElement.prototype = {\n\tinitRenderable: function () {\n\t\t// layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n\t\tthis.isInRange = false;\n\t\t// layer's display state\n\t\tthis.hidden = false;\n\t\t// If layer's transparency equals 0, it can be hidden\n\t\tthis.isTransparent = false;\n\t\t// list of animated components\n\t\tthis.renderableComponents = [];\n\t},\n\taddRenderableComponent: function (component) {\n\t\tif (this.renderableComponents.indexOf(component) === -1) {\n\t\t\tthis.renderableComponents.push(component);\n\t\t}\n\t},\n\tremoveRenderableComponent: function (component) {\n\t\tif (this.renderableComponents.indexOf(component) !== -1) {\n\t\t\tthis.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n\t\t}\n\t},\n\tprepareRenderableFrame: function (num) {\n\t\tthis.checkLayerLimits(num);\n\t},\n\tcheckTransparency: function () {\n\t\tif (this.finalTransform.mProp.o.v <= 0) {\n\t\t\tif (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n\t\t\t\tthis.isTransparent = true;\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t} else if (this.isTransparent) {\n\t\t\tthis.isTransparent = false;\n\t\t\tthis.show();\n\t\t}\n\t},\n\t/**\n\t * @function\n\t * Initializes frame related properties.\n\t *\n\t * @param {number} num\n\t * current frame number in Layer's time\n\t *\n\t */\n\tcheckLayerLimits: function (num) {\n\t\tif (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n\t\t\tif (this.isInRange !== true) {\n\t\t\t\tthis.globalData._mdf = true;\n\t\t\t\tthis._mdf = true;\n\t\t\t\tthis.isInRange = true;\n\t\t\t\tthis.show();\n\t\t\t}\n\t\t} else if (this.isInRange !== false) {\n\t\t\tthis.globalData._mdf = true;\n\t\t\tthis.isInRange = false;\n\t\t\tthis.hide();\n\t\t}\n\t},\n\trenderRenderable: function () {\n\t\tvar i;\n\t\tvar len = this.renderableComponents.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.renderableComponents[i].renderFrame(this._isFirstFrame);\n\t\t}\n\t\t/* this.maskManager.renderFrame(this.finalTransform.mat);\n        this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\t},\n\tsourceRectAtTime: function () {\n\t\treturn {\n\t\t\ttop: 0,\n\t\t\tleft: 0,\n\t\t\twidth: 100,\n\t\t\theight: 100,\n\t\t};\n\t},\n\tgetLayerSize: function () {\n\t\tif (this.data.ty === 5) {\n\t\t\treturn { w: this.data.textData.width, h: this.data.textData.height };\n\t\t}\n\t\treturn { w: this.data.width, h: this.data.height };\n\t},\n};\n\nconst MaskManagerInterface = (function () {\n\tfunction MaskInterface(mask, data) {\n\t\tthis._mask = mask;\n\t\tthis._data = data;\n\t}\n\tObject.defineProperty(MaskInterface.prototype, 'maskPath', {\n\t\tget: function () {\n\t\t\tif (this._mask.prop.k) {\n\t\t\t\tthis._mask.prop.getValue();\n\t\t\t}\n\t\t\treturn this._mask.prop;\n\t\t},\n\t});\n\tObject.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n\t\tget: function () {\n\t\t\tif (this._mask.op.k) {\n\t\t\t\tthis._mask.op.getValue();\n\t\t\t}\n\t\t\treturn this._mask.op.v * 100;\n\t\t},\n\t});\n\n\tvar MaskManager = function (maskManager) {\n\t\tvar _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\t\tvar i;\n\t\tvar len = maskManager.viewData.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t_masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n\t\t}\n\n\t\tvar maskFunction = function (name) {\n\t\t\ti = 0;\n\t\t\twhile (i < len) {\n\t\t\t\tif (maskManager.masksProperties[i].nm === name) {\n\t\t\t\t\treturn _masksInterfaces[i];\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\treturn null;\n\t\t};\n\t\treturn maskFunction;\n\t};\n\treturn MaskManager;\n}());\n\nconst ExpressionPropertyInterface = (function () {\n\tvar defaultUnidimensionalValue = { pv: 0, v: 0, mult: 1 };\n\tvar defaultMultidimensionalValue = { pv: [0, 0, 0], v: [0, 0, 0], mult: 1 };\n\n\tfunction completeProperty(expressionValue, property, type) {\n\t\tObject.defineProperty(expressionValue, 'velocity', {\n\t\t\tget: function () {\n\t\t\t\treturn property.getVelocityAtTime(property.comp.currentFrame);\n\t\t\t},\n\t\t});\n\t\texpressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\t\texpressionValue.key = function (pos) {\n\t\t\tif (!expressionValue.numKeys) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tvar value = '';\n\t\t\tif ('s' in property.keyframes[pos - 1]) {\n\t\t\t\tvalue = property.keyframes[pos - 1].s;\n\t\t\t} else if ('e' in property.keyframes[pos - 2]) {\n\t\t\t\tvalue = property.keyframes[pos - 2].e;\n\t\t\t} else {\n\t\t\t\tvalue = property.keyframes[pos - 2].s;\n\t\t\t}\n\t\t\tvar valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\t\t\tvalueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n\t\t\tvalueProp.value = type === 'unidimensional' ? value[0] : value;\n\t\t\treturn valueProp;\n\t\t};\n\t\texpressionValue.valueAtTime = property.getValueAtTime;\n\t\texpressionValue.speedAtTime = property.getSpeedAtTime;\n\t\texpressionValue.velocityAtTime = property.getVelocityAtTime;\n\t\texpressionValue.propertyGroup = property.propertyGroup;\n\t}\n\n\tfunction UnidimensionalPropertyInterface(property) {\n\t\tif (!property || !('pv' in property)) {\n\t\t\tproperty = defaultUnidimensionalValue;\n\t\t}\n\t\tvar mult = 1 / property.mult;\n\t\tvar val = property.pv * mult;\n\t\tvar expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\t\texpressionValue.value = val;\n\t\tcompleteProperty(expressionValue, property, 'unidimensional');\n\n\t\treturn function () {\n\t\t\tif (property.k) {\n\t\t\t\tproperty.getValue();\n\t\t\t}\n\t\t\tval = property.v * mult;\n\t\t\tif (expressionValue.value !== val) {\n\t\t\t\texpressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\t\t\t\texpressionValue.value = val;\n\t\t\t\tcompleteProperty(expressionValue, property, 'unidimensional');\n\t\t\t}\n\t\t\treturn expressionValue;\n\t\t};\n\t}\n\n\tfunction MultidimensionalPropertyInterface(property) {\n\t\tif (!property || !('pv' in property)) {\n\t\t\tproperty = defaultMultidimensionalValue;\n\t\t}\n\t\tvar mult = 1 / property.mult;\n\t\tvar len = (property.data && property.data.l) || property.pv.length;\n\t\tvar expressionValue = createTypedArray('float32', len);\n\t\tvar arrValue = createTypedArray('float32', len);\n\t\texpressionValue.value = arrValue;\n\t\tcompleteProperty(expressionValue, property, 'multidimensional');\n\n\t\treturn function () {\n\t\t\tif (property.k) {\n\t\t\t\tproperty.getValue();\n\t\t\t}\n\t\t\tfor (var i = 0; i < len; i += 1) {\n\t\t\t\tarrValue[i] = property.v[i] * mult;\n\t\t\t\texpressionValue[i] = arrValue[i];\n\t\t\t}\n\t\t\treturn expressionValue;\n\t\t};\n\t}\n\n\t// TODO: try to avoid using this getter\n\tfunction defaultGetter() {\n\t\treturn defaultUnidimensionalValue;\n\t}\n\n\treturn function (property) {\n\t\tif (!property) {\n\t\t\treturn defaultGetter;\n\t\t} if (property.propType === 'unidimensional') {\n\t\t\treturn UnidimensionalPropertyInterface(property);\n\t\t}\n\t\treturn MultidimensionalPropertyInterface(property);\n\t};\n}());\n\nconst TransformExpressionInterface = (function () {\n\treturn function (transform) {\n\t\tfunction _thisFunction(name) {\n\t\t\tswitch (name) {\n\t\t\t\tcase 'scale':\n\t\t\t\tcase 'Scale':\n\t\t\t\tcase 'ADBE Scale':\n\t\t\t\tcase 6:\n\t\t\t\t\treturn _thisFunction.scale;\n\t\t\t\tcase 'rotation':\n\t\t\t\tcase 'Rotation':\n\t\t\t\tcase 'ADBE Rotation':\n\t\t\t\tcase 'ADBE Rotate Z':\n\t\t\t\tcase 10:\n\t\t\t\t\treturn _thisFunction.rotation;\n\t\t\t\tcase 'ADBE Rotate X':\n\t\t\t\t\treturn _thisFunction.xRotation;\n\t\t\t\tcase 'ADBE Rotate Y':\n\t\t\t\t\treturn _thisFunction.yRotation;\n\t\t\t\tcase 'position':\n\t\t\t\tcase 'Position':\n\t\t\t\tcase 'ADBE Position':\n\t\t\t\tcase 2:\n\t\t\t\t\treturn _thisFunction.position;\n\t\t\t\tcase 'ADBE Position_0':\n\t\t\t\t\treturn _thisFunction.xPosition;\n\t\t\t\tcase 'ADBE Position_1':\n\t\t\t\t\treturn _thisFunction.yPosition;\n\t\t\t\tcase 'ADBE Position_2':\n\t\t\t\t\treturn _thisFunction.zPosition;\n\t\t\t\tcase 'anchorPoint':\n\t\t\t\tcase 'AnchorPoint':\n\t\t\t\tcase 'Anchor Point':\n\t\t\t\tcase 'ADBE AnchorPoint':\n\t\t\t\tcase 1:\n\t\t\t\t\treturn _thisFunction.anchorPoint;\n\t\t\t\tcase 'opacity':\n\t\t\t\tcase 'Opacity':\n\t\t\t\tcase 11:\n\t\t\t\t\treturn _thisFunction.opacity;\n\t\t\t\tdefault:\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\tObject.defineProperty(_thisFunction, 'rotation', {\n\t\t\tget: ExpressionPropertyInterface(transform.r || transform.rz),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'zRotation', {\n\t\t\tget: ExpressionPropertyInterface(transform.rz || transform.r),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'xRotation', {\n\t\t\tget: ExpressionPropertyInterface(transform.rx),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'yRotation', {\n\t\t\tget: ExpressionPropertyInterface(transform.ry),\n\t\t});\n\t\tObject.defineProperty(_thisFunction, 'scale', {\n\t\t\tget: ExpressionPropertyInterface(transform.s),\n\t\t});\n\t\tvar _px;\n\t\tvar _py;\n\t\tvar _pz;\n\t\tvar _transformFactory;\n\t\tif (transform.p) {\n\t\t\t_transformFactory = ExpressionPropertyInterface(transform.p);\n\t\t} else {\n\t\t\t_px = ExpressionPropertyInterface(transform.px);\n\t\t\t_py = ExpressionPropertyInterface(transform.py);\n\t\t\tif (transform.pz) {\n\t\t\t\t_pz = ExpressionPropertyInterface(transform.pz);\n\t\t\t}\n\t\t}\n\t\tObject.defineProperty(_thisFunction, 'position', {\n\t\t\tget: function () {\n\t\t\t\tif (transform.p) {\n\t\t\t\t\treturn _transformFactory();\n\t\t\t\t}\n\t\t\t\treturn [\n\t\t\t\t\t_px(),\n\t\t\t\t\t_py(),\n\t\t\t\t\t_pz ? _pz() : 0];\n\t\t\t},\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'xPosition', {\n\t\t\tget: ExpressionPropertyInterface(transform.px),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'yPosition', {\n\t\t\tget: ExpressionPropertyInterface(transform.py),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'zPosition', {\n\t\t\tget: ExpressionPropertyInterface(transform.pz),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'anchorPoint', {\n\t\t\tget: ExpressionPropertyInterface(transform.a),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'opacity', {\n\t\t\tget: ExpressionPropertyInterface(transform.o),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'skew', {\n\t\t\tget: ExpressionPropertyInterface(transform.sk),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'skewAxis', {\n\t\t\tget: ExpressionPropertyInterface(transform.sa),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'orientation', {\n\t\t\tget: ExpressionPropertyInterface(transform.or),\n\t\t});\n\n\t\treturn _thisFunction;\n\t};\n}());\n\nconst LayerExpressionInterface = (function () {\n\tfunction getMatrix(time) {\n\t\tvar toWorldMat = new Matrix();\n\t\tif (time !== undefined) {\n\t\t\tvar propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\t\t\tpropMatrix.clone(toWorldMat);\n\t\t} else {\n\t\t\tvar transformMat = this._elem.finalTransform.mProp;\n\t\t\ttransformMat.applyToMatrix(toWorldMat);\n\t\t}\n\t\treturn toWorldMat;\n\t}\n\n\tfunction toWorldVec(arr, time) {\n\t\tvar toWorldMat = this.getMatrix(time);\n\t\ttoWorldMat.props[12] = 0;\n\t\ttoWorldMat.props[13] = 0;\n\t\ttoWorldMat.props[14] = 0;\n\t\treturn this.applyPoint(toWorldMat, arr);\n\t}\n\n\tfunction toWorld(arr, time) {\n\t\tvar toWorldMat = this.getMatrix(time);\n\t\treturn this.applyPoint(toWorldMat, arr);\n\t}\n\n\tfunction fromWorldVec(arr, time) {\n\t\tvar toWorldMat = this.getMatrix(time);\n\t\ttoWorldMat.props[12] = 0;\n\t\ttoWorldMat.props[13] = 0;\n\t\ttoWorldMat.props[14] = 0;\n\t\treturn this.invertPoint(toWorldMat, arr);\n\t}\n\n\tfunction fromWorld(arr, time) {\n\t\tvar toWorldMat = this.getMatrix(time);\n\t\treturn this.invertPoint(toWorldMat, arr);\n\t}\n\n\tfunction applyPoint(matrix, arr) {\n\t\tif (this._elem.hierarchy && this._elem.hierarchy.length) {\n\t\t\tvar i;\n\t\t\tvar len = this._elem.hierarchy.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tthis._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n\t\t\t}\n\t\t}\n\t\treturn matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n\t}\n\n\tfunction invertPoint(matrix, arr) {\n\t\tif (this._elem.hierarchy && this._elem.hierarchy.length) {\n\t\t\tvar i;\n\t\t\tvar len = this._elem.hierarchy.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tthis._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n\t\t\t}\n\t\t}\n\t\treturn matrix.inversePoint(arr);\n\t}\n\n\tfunction fromComp(arr) {\n\t\tvar toWorldMat = new Matrix();\n\t\ttoWorldMat.reset();\n\t\tthis._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\t\tif (this._elem.hierarchy && this._elem.hierarchy.length) {\n\t\t\tvar i;\n\t\t\tvar len = this._elem.hierarchy.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tthis._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n\t\t\t}\n\t\t\treturn toWorldMat.inversePoint(arr);\n\t\t}\n\t\treturn toWorldMat.inversePoint(arr);\n\t}\n\n\tfunction sampleImage() {\n\t\treturn [1, 1, 1, 1];\n\t}\n\n\treturn function (elem) {\n\t\tvar transformInterface;\n\n\t\tfunction _registerMaskInterface(maskManager) {\n\t\t\t_thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n\t\t}\n\t\tfunction _registerEffectsInterface(effects) {\n\t\t\t_thisLayerFunction.effect = effects;\n\t\t}\n\n\t\tfunction _thisLayerFunction(name) {\n\t\t\tswitch (name) {\n\t\t\t\tcase 'ADBE Root Vectors Group':\n\t\t\t\tcase 'Contents':\n\t\t\t\tcase 2:\n\t\t\t\t\treturn _thisLayerFunction.shapeInterface;\n\t\t\t\tcase 1:\n\t\t\t\tcase 6:\n\t\t\t\tcase 'Transform':\n\t\t\t\tcase 'transform':\n\t\t\t\tcase 'ADBE Transform Group':\n\t\t\t\t\treturn transformInterface;\n\t\t\t\tcase 4:\n\t\t\t\tcase 'ADBE Effect Parade':\n\t\t\t\tcase 'effects':\n\t\t\t\tcase 'Effects':\n\t\t\t\t\treturn _thisLayerFunction.effect;\n\t\t\t\tcase 'ADBE Text Properties':\n\t\t\t\t\treturn _thisLayerFunction.textInterface;\n\t\t\t\tdefault:\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\t_thisLayerFunction.getMatrix = getMatrix;\n\t\t_thisLayerFunction.invertPoint = invertPoint;\n\t\t_thisLayerFunction.applyPoint = applyPoint;\n\t\t_thisLayerFunction.toWorld = toWorld;\n\t\t_thisLayerFunction.toWorldVec = toWorldVec;\n\t\t_thisLayerFunction.fromWorld = fromWorld;\n\t\t_thisLayerFunction.fromWorldVec = fromWorldVec;\n\t\t_thisLayerFunction.toComp = toWorld;\n\t\t_thisLayerFunction.fromComp = fromComp;\n\t\t_thisLayerFunction.sampleImage = sampleImage;\n\t\t_thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n\t\t_thisLayerFunction._elem = elem;\n\t\ttransformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n\t\tvar anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n\t\tObject.defineProperties(_thisLayerFunction, {\n\t\t\thasParent: {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn elem.hierarchy.length;\n\t\t\t\t},\n\t\t\t},\n\t\t\tparent: {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn elem.hierarchy[0].layerInterface;\n\t\t\t\t},\n\t\t\t},\n\t\t\trotation: getDescriptor(transformInterface, 'rotation'),\n\t\t\tscale: getDescriptor(transformInterface, 'scale'),\n\t\t\tposition: getDescriptor(transformInterface, 'position'),\n\t\t\topacity: getDescriptor(transformInterface, 'opacity'),\n\t\t\tanchorPoint: anchorPointDescriptor,\n\t\t\tanchor_point: anchorPointDescriptor,\n\t\t\ttransform: {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn transformInterface;\n\t\t\t\t},\n\t\t\t},\n\t\t\tactive: {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn elem.isInRange;\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\t_thisLayerFunction.startTime = elem.data.st;\n\t\t_thisLayerFunction.index = elem.data.ind;\n\t\t_thisLayerFunction.source = elem.data.refId;\n\t\t_thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n\t\t_thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n\t\t_thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n\t\t_thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n\t\t_thisLayerFunction._name = elem.data.nm;\n\n\t\t_thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n\t\t_thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n\t\treturn _thisLayerFunction;\n\t};\n}());\n\nconst propertyGroupFactory = (function () {\n\treturn function (interfaceFunction, parentPropertyGroup) {\n\t\treturn function (val) {\n\t\t\tval = val === undefined ? 1 : val;\n\t\t\tif (val <= 0) {\n\t\t\t\treturn interfaceFunction;\n\t\t\t}\n\t\t\treturn parentPropertyGroup(val - 1);\n\t\t};\n\t};\n}());\n\nconst PropertyInterface = (function () {\n\treturn function (propertyName, propertyGroup) {\n\t\tvar interfaceFunction = {\n\t\t\t_name: propertyName,\n\t\t};\n\n\t\tfunction _propertyGroup(val) {\n\t\t\tval = val === undefined ? 1 : val;\n\t\t\tif (val <= 0) {\n\t\t\t\treturn interfaceFunction;\n\t\t\t}\n\t\t\treturn propertyGroup(val - 1);\n\t\t}\n\n\t\treturn _propertyGroup;\n\t};\n}());\n\nconst EffectsExpressionInterface = (function () {\n\tvar ob = {\n\t\tcreateEffectsInterface: createEffectsInterface,\n\t};\n\n\tfunction createEffectsInterface(elem, propertyGroup) {\n\t\tif (elem.effectsManager) {\n\t\t\tvar effectElements = [];\n\t\t\tvar effectsData = elem.data.ef;\n\t\t\tvar i;\n\t\t\tvar len = elem.effectsManager.effectElements.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\teffectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n\t\t\t}\n\n\t\t\tvar effects = elem.data.ef || [];\n\t\t\tvar groupInterface = function (name) {\n\t\t\t\ti = 0;\n\t\t\t\tlen = effects.length;\n\t\t\t\twhile (i < len) {\n\t\t\t\t\tif (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n\t\t\t\t\t\treturn effectElements[i];\n\t\t\t\t\t}\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t};\n\t\t\tObject.defineProperty(groupInterface, 'numProperties', {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn effects.length;\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn groupInterface;\n\t\t}\n\t\treturn null;\n\t}\n\n\tfunction createGroupInterface(data, elements, propertyGroup, elem) {\n\t\tfunction groupInterface(name) {\n\t\t\tvar effects = data.ef;\n\t\t\tvar i = 0;\n\t\t\tvar len = effects.length;\n\t\t\twhile (i < len) {\n\t\t\t\tif (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n\t\t\t\t\tif (effects[i].ty === 5) {\n\t\t\t\t\t\treturn effectElements[i];\n\t\t\t\t\t}\n\t\t\t\t\treturn effectElements[i]();\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tthrow new Error();\n\t\t}\n\t\tvar _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n\t\tvar effectElements = [];\n\t\tvar i;\n\t\tvar len = data.ef.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (data.ef[i].ty === 5) {\n\t\t\t\teffectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n\t\t\t} else {\n\t\t\t\teffectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n\t\t\t}\n\t\t}\n\n\t\tif (data.mn === 'ADBE Color Control') {\n\t\t\tObject.defineProperty(groupInterface, 'color', {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn effectElements[0]();\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\tObject.defineProperties(groupInterface, {\n\t\t\tnumProperties: {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn data.np;\n\t\t\t\t},\n\t\t\t},\n\t\t\t_name: { value: data.nm },\n\t\t\tpropertyGroup: { value: _propertyGroup },\n\t\t});\n\t\tgroupInterface.enabled = data.en !== 0;\n\t\tgroupInterface.active = groupInterface.enabled;\n\t\treturn groupInterface;\n\t}\n\n\tfunction createValueInterface(element, type, elem, propertyGroup) {\n\t\tvar expressionProperty = ExpressionPropertyInterface(element.p);\n\t\tfunction interfaceFunction() {\n\t\t\tif (type === 10) {\n\t\t\t\treturn elem.comp.compInterface(element.p.v);\n\t\t\t}\n\t\t\treturn expressionProperty();\n\t\t}\n\n\t\tif (element.p.setGroupProperty) {\n\t\t\telement.p.setGroupProperty(PropertyInterface('', propertyGroup));\n\t\t}\n\n\t\treturn interfaceFunction;\n\t}\n\n\treturn ob;\n}());\n\nconst CompExpressionInterface = (function () {\n\treturn function (comp) {\n\t\tfunction _thisLayerFunction(name) {\n\t\t\tvar i = 0;\n\t\t\tvar len = comp.layers.length;\n\t\t\twhile (i < len) {\n\t\t\t\tif (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n\t\t\t\t\treturn comp.elements[i].layerInterface;\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\treturn null;\n\t\t\t// return {active:false};\n\t\t}\n\t\tObject.defineProperty(_thisLayerFunction, '_name', { value: comp.data.nm });\n\t\t_thisLayerFunction.layer = _thisLayerFunction;\n\t\t_thisLayerFunction.pixelAspect = 1;\n\t\t_thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n\t\t_thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n\t\t_thisLayerFunction.pixelAspect = 1;\n\t\t_thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n\t\t_thisLayerFunction.displayStartTime = 0;\n\t\t_thisLayerFunction.numLayers = comp.layers.length;\n\t\treturn _thisLayerFunction;\n\t};\n}());\n\nconst ShapePathInterface = (\n\n\tfunction () {\n\t\treturn function pathInterfaceFactory(shape, view, propertyGroup) {\n\t\t\tvar prop = view.sh;\n\n\t\t\tfunction interfaceFunction(val) {\n\t\t\t\tif (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n\t\t\t\t\treturn interfaceFunction.path;\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\t\tprop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n\t\t\tObject.defineProperties(interfaceFunction, {\n\t\t\t\tpath: {\n\t\t\t\t\tget: function () {\n\t\t\t\t\t\tif (prop.k) {\n\t\t\t\t\t\t\tprop.getValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn prop;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tshape: {\n\t\t\t\t\tget: function () {\n\t\t\t\t\t\tif (prop.k) {\n\t\t\t\t\t\t\tprop.getValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn prop;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t_name: { value: shape.nm },\n\t\t\t\tix: { value: shape.ix },\n\t\t\t\tpropertyIndex: { value: shape.ix },\n\t\t\t\tmn: { value: shape.mn },\n\t\t\t\tpropertyGroup: { value: propertyGroup },\n\t\t\t});\n\t\t\treturn interfaceFunction;\n\t\t};\n\t}()\n);\n\nconst ShapeExpressionInterface = (function () {\n\tfunction iterateElements(shapes, view, propertyGroup) {\n\t\tvar arr = [];\n\t\tvar i;\n\t\tvar len = shapes ? shapes.length : 0;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (shapes[i].ty === 'gr') {\n\t\t\t\tarr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'fl') {\n\t\t\t\tarr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'st') {\n\t\t\t\tarr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'tm') {\n\t\t\t\tarr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'tr') {\n\t\t\t\t// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'el') {\n\t\t\t\tarr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'sr') {\n\t\t\t\tarr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'sh') {\n\t\t\t\tarr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'rc') {\n\t\t\t\tarr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'rd') {\n\t\t\t\tarr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'rp') {\n\t\t\t\tarr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'gf') {\n\t\t\t\tarr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else {\n\t\t\t\tarr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t}\n\t\t}\n\t\treturn arr;\n\t}\n\n\tfunction contentsInterfaceFactory(shape, view, propertyGroup) {\n\t\tvar interfaces;\n\t\tvar interfaceFunction = function _interfaceFunction(value) {\n\t\t\tvar i = 0;\n\t\t\tvar len = interfaces.length;\n\t\t\twhile (i < len) {\n\t\t\t\tif (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n\t\t\t\t\treturn interfaces[i];\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tif (typeof value === 'number') {\n\t\t\t\treturn interfaces[value - 1];\n\t\t\t}\n\t\t\treturn null;\n\t\t};\n\n\t\tinterfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tinterfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n\t\tinterfaceFunction.numProperties = interfaces.length;\n\t\tvar transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n\t\tinterfaceFunction.transform = transformInterface;\n\t\tinterfaceFunction.propertyIndex = shape.cix;\n\t\tinterfaceFunction._name = shape.nm;\n\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction groupInterfaceFactory(shape, view, propertyGroup) {\n\t\tvar interfaceFunction = function _interfaceFunction(value) {\n\t\t\tswitch (value) {\n\t\t\t\tcase 'ADBE Vectors Group':\n\t\t\t\tcase 'Contents':\n\t\t\t\tcase 2:\n\t\t\t\t\treturn interfaceFunction.content;\n\t\t\t\t// Not necessary for now. Keeping them here in case a new case appears\n\t\t\t\t// case 'ADBE Vector Transform Group':\n\t\t\t\t// case 3:\n\t\t\t\tdefault:\n\t\t\t\t\treturn interfaceFunction.transform;\n\t\t\t}\n\t\t};\n\t\tinterfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tvar content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n\t\tvar transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n\t\tinterfaceFunction.content = content;\n\t\tinterfaceFunction.transform = transformInterface;\n\t\tObject.defineProperty(interfaceFunction, '_name', {\n\t\t\tget: function () {\n\t\t\t\treturn shape.nm;\n\t\t\t},\n\t\t});\n\t\t// interfaceFunction.content = interfaceFunction;\n\t\tinterfaceFunction.numProperties = shape.np;\n\t\tinterfaceFunction.propertyIndex = shape.ix;\n\t\tinterfaceFunction.nm = shape.nm;\n\t\tinterfaceFunction.mn = shape.mn;\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction fillInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(val) {\n\t\t\tif (val === 'Color' || val === 'color') {\n\t\t\t\treturn interfaceFunction.color;\n\t\t\t} if (val === 'Opacity' || val === 'opacity') {\n\t\t\t\treturn interfaceFunction.opacity;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tcolor: {\n\t\t\t\tget: ExpressionPropertyInterface(view.c),\n\t\t\t},\n\t\t\topacity: {\n\t\t\t\tget: ExpressionPropertyInterface(view.o),\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t\tmn: { value: shape.mn },\n\t\t});\n\n\t\tview.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n\t\tview.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction gradientFillInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(val) {\n\t\t\tif (val === 'Start Point' || val === 'start point') {\n\t\t\t\treturn interfaceFunction.startPoint;\n\t\t\t}\n\t\t\tif (val === 'End Point' || val === 'end point') {\n\t\t\t\treturn interfaceFunction.endPoint;\n\t\t\t}\n\t\t\tif (val === 'Opacity' || val === 'opacity') {\n\t\t\t\treturn interfaceFunction.opacity;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tstartPoint: {\n\t\t\t\tget: ExpressionPropertyInterface(view.s),\n\t\t\t},\n\t\t\tendPoint: {\n\t\t\t\tget: ExpressionPropertyInterface(view.e),\n\t\t\t},\n\t\t\topacity: {\n\t\t\t\tget: ExpressionPropertyInterface(view.o),\n\t\t\t},\n\t\t\ttype: {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn 'a';\n\t\t\t\t},\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t\tmn: { value: shape.mn },\n\t\t});\n\n\t\tview.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n\t\tview.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n\t\tview.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n\t\treturn interfaceFunction;\n\t}\n\tfunction defaultInterfaceFactory() {\n\t\tfunction interfaceFunction() {\n\t\t\treturn null;\n\t\t}\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction strokeInterfaceFactory(shape, view, propertyGroup) {\n\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tvar _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\t\tfunction addPropertyToDashOb(i) {\n\t\t\tObject.defineProperty(dashOb, shape.d[i].nm, {\n\t\t\t\tget: ExpressionPropertyInterface(view.d.dataProps[i].p),\n\t\t\t});\n\t\t}\n\t\tvar i;\n\t\tvar len = shape.d ? shape.d.length : 0;\n\t\tvar dashOb = {};\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\taddPropertyToDashOb(i);\n\t\t\tview.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n\t\t}\n\n\t\tfunction interfaceFunction(val) {\n\t\t\tif (val === 'Color' || val === 'color') {\n\t\t\t\treturn interfaceFunction.color;\n\t\t\t} if (val === 'Opacity' || val === 'opacity') {\n\t\t\t\treturn interfaceFunction.opacity;\n\t\t\t} if (val === 'Stroke Width' || val === 'stroke width') {\n\t\t\t\treturn interfaceFunction.strokeWidth;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tcolor: {\n\t\t\t\tget: ExpressionPropertyInterface(view.c),\n\t\t\t},\n\t\t\topacity: {\n\t\t\t\tget: ExpressionPropertyInterface(view.o),\n\t\t\t},\n\t\t\tstrokeWidth: {\n\t\t\t\tget: ExpressionPropertyInterface(view.w),\n\t\t\t},\n\t\t\tdash: {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn dashOb;\n\t\t\t\t},\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t\tmn: { value: shape.mn },\n\t\t});\n\n\t\tview.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n\t\tview.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n\t\tview.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction trimInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(val) {\n\t\t\tif (val === shape.e.ix || val === 'End' || val === 'end') {\n\t\t\t\treturn interfaceFunction.end;\n\t\t\t}\n\t\t\tif (val === shape.s.ix) {\n\t\t\t\treturn interfaceFunction.start;\n\t\t\t}\n\t\t\tif (val === shape.o.ix) {\n\t\t\t\treturn interfaceFunction.offset;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tinterfaceFunction.propertyIndex = shape.ix;\n\n\t\tview.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n\t\tview.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n\t\tview.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n\t\tinterfaceFunction.propertyIndex = shape.ix;\n\t\tinterfaceFunction.propertyGroup = propertyGroup;\n\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tstart: {\n\t\t\t\tget: ExpressionPropertyInterface(view.s),\n\t\t\t},\n\t\t\tend: {\n\t\t\t\tget: ExpressionPropertyInterface(view.e),\n\t\t\t},\n\t\t\toffset: {\n\t\t\t\tget: ExpressionPropertyInterface(view.o),\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t});\n\t\tinterfaceFunction.mn = shape.mn;\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction transformInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(value) {\n\t\t\tif (shape.a.ix === value || value === 'Anchor Point') {\n\t\t\t\treturn interfaceFunction.anchorPoint;\n\t\t\t}\n\t\t\tif (shape.o.ix === value || value === 'Opacity') {\n\t\t\t\treturn interfaceFunction.opacity;\n\t\t\t}\n\t\t\tif (shape.p.ix === value || value === 'Position') {\n\t\t\t\treturn interfaceFunction.position;\n\t\t\t}\n\t\t\tif (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n\t\t\t\treturn interfaceFunction.rotation;\n\t\t\t}\n\t\t\tif (shape.s.ix === value || value === 'Scale') {\n\t\t\t\treturn interfaceFunction.scale;\n\t\t\t}\n\t\t\tif ((shape.sk && shape.sk.ix === value) || value === 'Skew') {\n\t\t\t\treturn interfaceFunction.skew;\n\t\t\t}\n\t\t\tif ((shape.sa && shape.sa.ix === value) || value === 'Skew Axis') {\n\t\t\t\treturn interfaceFunction.skewAxis;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tview.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n\t\tview.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n\t\tview.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n\t\tview.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n\t\tview.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\t\tif (view.transform.mProps.sk) {\n\t\t\tview.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n\t\t\tview.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n\t\t}\n\t\tview.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\topacity: {\n\t\t\t\tget: ExpressionPropertyInterface(view.transform.mProps.o),\n\t\t\t},\n\t\t\tposition: {\n\t\t\t\tget: ExpressionPropertyInterface(view.transform.mProps.p),\n\t\t\t},\n\t\t\tanchorPoint: {\n\t\t\t\tget: ExpressionPropertyInterface(view.transform.mProps.a),\n\t\t\t},\n\t\t\tscale: {\n\t\t\t\tget: ExpressionPropertyInterface(view.transform.mProps.s),\n\t\t\t},\n\t\t\trotation: {\n\t\t\t\tget: ExpressionPropertyInterface(view.transform.mProps.r),\n\t\t\t},\n\t\t\tskew: {\n\t\t\t\tget: ExpressionPropertyInterface(view.transform.mProps.sk),\n\t\t\t},\n\t\t\tskewAxis: {\n\t\t\t\tget: ExpressionPropertyInterface(view.transform.mProps.sa),\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t});\n\t\tinterfaceFunction.ty = 'tr';\n\t\tinterfaceFunction.mn = shape.mn;\n\t\tinterfaceFunction.propertyGroup = propertyGroup;\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction ellipseInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(value) {\n\t\t\tif (shape.p.ix === value) {\n\t\t\t\treturn interfaceFunction.position;\n\t\t\t}\n\t\t\tif (shape.s.ix === value) {\n\t\t\t\treturn interfaceFunction.size;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tinterfaceFunction.propertyIndex = shape.ix;\n\t\tvar prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n\t\tprop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n\t\tprop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tsize: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.s),\n\t\t\t},\n\t\t\tposition: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.p),\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t});\n\t\tinterfaceFunction.mn = shape.mn;\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction starInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(value) {\n\t\t\tif (shape.p.ix === value) {\n\t\t\t\treturn interfaceFunction.position;\n\t\t\t}\n\t\t\tif (shape.r.ix === value) {\n\t\t\t\treturn interfaceFunction.rotation;\n\t\t\t}\n\t\t\tif (shape.pt.ix === value) {\n\t\t\t\treturn interfaceFunction.points;\n\t\t\t}\n\t\t\tif (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n\t\t\t\treturn interfaceFunction.outerRadius;\n\t\t\t}\n\t\t\tif (shape.os.ix === value) {\n\t\t\t\treturn interfaceFunction.outerRoundness;\n\t\t\t}\n\t\t\tif (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n\t\t\t\treturn interfaceFunction.innerRadius;\n\t\t\t}\n\t\t\tif (shape.is && shape.is.ix === value) {\n\t\t\t\treturn interfaceFunction.innerRoundness;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tvar prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n\t\tinterfaceFunction.propertyIndex = shape.ix;\n\t\tprop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n\t\tprop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n\t\tprop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n\t\tprop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n\t\tprop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\t\tif (shape.ir) {\n\t\t\tprop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n\t\t\tprop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n\t\t}\n\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tposition: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.p),\n\t\t\t},\n\t\t\trotation: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.r),\n\t\t\t},\n\t\t\tpoints: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.pt),\n\t\t\t},\n\t\t\touterRadius: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.or),\n\t\t\t},\n\t\t\touterRoundness: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.os),\n\t\t\t},\n\t\t\tinnerRadius: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.ir),\n\t\t\t},\n\t\t\tinnerRoundness: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.is),\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t});\n\t\tinterfaceFunction.mn = shape.mn;\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction rectInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(value) {\n\t\t\tif (shape.p.ix === value) {\n\t\t\t\treturn interfaceFunction.position;\n\t\t\t}\n\t\t\tif (shape.r.ix === value) {\n\t\t\t\treturn interfaceFunction.roundness;\n\t\t\t}\n\t\t\tif (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n\t\t\t\treturn interfaceFunction.size;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n\t\tvar prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n\t\tinterfaceFunction.propertyIndex = shape.ix;\n\t\tprop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n\t\tprop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n\t\tprop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tposition: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.p),\n\t\t\t},\n\t\t\troundness: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.r),\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.s),\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t});\n\t\tinterfaceFunction.mn = shape.mn;\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction roundedInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(value) {\n\t\t\tif (shape.r.ix === value || value === 'Round Corners 1') {\n\t\t\t\treturn interfaceFunction.radius;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tvar prop = view;\n\t\tinterfaceFunction.propertyIndex = shape.ix;\n\t\tprop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tradius: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.rd),\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t});\n\t\tinterfaceFunction.mn = shape.mn;\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction repeaterInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(value) {\n\t\t\tif (shape.c.ix === value || value === 'Copies') {\n\t\t\t\treturn interfaceFunction.copies;\n\t\t\t} if (shape.o.ix === value || value === 'Offset') {\n\t\t\t\treturn interfaceFunction.offset;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tvar prop = view;\n\t\tinterfaceFunction.propertyIndex = shape.ix;\n\t\tprop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n\t\tprop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tcopies: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.c),\n\t\t\t},\n\t\t\toffset: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.o),\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t});\n\t\tinterfaceFunction.mn = shape.mn;\n\t\treturn interfaceFunction;\n\t}\n\n\treturn function (shapes, view, propertyGroup) {\n\t\tvar interfaces;\n\t\tfunction _interfaceFunction(value) {\n\t\t\tif (typeof value === 'number') {\n\t\t\t\tvalue = value === undefined ? 1 : value;\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn propertyGroup;\n\t\t\t\t}\n\t\t\t\treturn interfaces[value - 1];\n\t\t\t}\n\t\t\tvar i = 0;\n\t\t\tvar len = interfaces.length;\n\t\t\twhile (i < len) {\n\t\t\t\tif (interfaces[i]._name === value) {\n\t\t\t\t\treturn interfaces[i];\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tfunction parentGroupWrapper() {\n\t\t\treturn propertyGroup;\n\t\t}\n\t\t_interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n\t\tinterfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n\t\t_interfaceFunction.numProperties = interfaces.length;\n\t\t_interfaceFunction._name = 'Contents';\n\t\treturn _interfaceFunction;\n\t};\n}());\n\nconst TextExpressionInterface = (function () {\n\treturn function (elem) {\n\t\tvar _prevValue;\n\t\tvar _sourceText;\n\t\tfunction _thisLayerFunction(name) {\n\t\t\tswitch (name) {\n\t\t\t\tcase 'ADBE Text Document':\n\t\t\t\t\treturn _thisLayerFunction.sourceText;\n\t\t\t\tdefault:\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\tObject.defineProperty(_thisLayerFunction, 'sourceText', {\n\t\t\tget: function () {\n\t\t\t\telem.textProperty.getValue();\n\t\t\t\tvar stringValue = elem.textProperty.currentData.t;\n\t\t\t\tif (stringValue !== _prevValue) {\n\t\t\t\t\telem.textProperty.currentData.t = _prevValue;\n\t\t\t\t\t_sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n\t\t\t\t\t// If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\t\t\t\t\t_sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\t\t\t\t}\n\t\t\t\treturn _sourceText;\n\t\t\t},\n\t\t});\n\t\treturn _thisLayerFunction;\n\t};\n}());\n\nconst getBlendMode = (function () {\n\tvar blendModeEnums = {\n\t\t0: 'source-over',\n\t\t1: 'multiply',\n\t\t2: 'screen',\n\t\t3: 'overlay',\n\t\t4: 'darken',\n\t\t5: 'lighten',\n\t\t6: 'color-dodge',\n\t\t7: 'color-burn',\n\t\t8: 'hard-light',\n\t\t9: 'soft-light',\n\t\t10: 'difference',\n\t\t11: 'exclusion',\n\t\t12: 'hue',\n\t\t13: 'saturation',\n\t\t14: 'color',\n\t\t15: 'luminosity',\n\t};\n\n\treturn function (mode) {\n\t\treturn blendModeEnums[mode] || '';\n\t};\n}());\n\nfunction SliderEffect(data, elem, container) {\n\tthis.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n}\nfunction AngleEffect(data, elem, container) {\n\tthis.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n}\nfunction ColorEffect(data, elem, container) {\n\tthis.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n}\nfunction PointEffect(data, elem, container) {\n\tthis.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n}\nfunction LayerIndexEffect(data, elem, container) {\n\tthis.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n}\nfunction MaskIndexEffect(data, elem, container) {\n\tthis.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n}\nfunction CheckboxEffect(data, elem, container) {\n\tthis.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n}\nfunction NoValueEffect() {\n\tthis.p = {};\n}\n\nfunction EffectsManager(data, element) {\n\tvar effects = data.ef || [];\n\tthis.effectElements = [];\n\tvar i;\n\tvar len = effects.length;\n\tvar effectItem;\n\tfor (i = 0; i < len; i += 1) {\n\t\teffectItem = new GroupEffect(effects[i], element);\n\t\tthis.effectElements.push(effectItem);\n\t}\n}\n\nfunction GroupEffect(data, element) {\n\tthis.init(data, element);\n}\n\nextendPrototype([DynamicPropertyContainer], GroupEffect);\n\nGroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\nGroupEffect.prototype.init = function (data, element) {\n\tthis.data = data;\n\tthis.effectElements = [];\n\tthis.initDynamicPropertyContainer(element);\n\tvar i;\n\tvar len = this.data.ef.length;\n\tvar eff;\n\tvar effects = this.data.ef;\n\tfor (i = 0; i < len; i += 1) {\n\t\teff = null;\n\t\tswitch (effects[i].ty) {\n\t\t\tcase 0:\n\t\t\t\teff = new SliderEffect(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\teff = new AngleEffect(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\teff = new ColorEffect(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\teff = new PointEffect(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\tcase 7:\n\t\t\t\teff = new CheckboxEffect(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t\tcase 10:\n\t\t\t\teff = new LayerIndexEffect(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t\tcase 11:\n\t\t\t\teff = new MaskIndexEffect(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t\tcase 5:\n\t\t\t\teff = new EffectsManager(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t\t// case 6:\n\t\t\tdefault:\n\t\t\t\teff = new NoValueEffect(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t}\n\t\tif (eff) {\n\t\t\tthis.effectElements.push(eff);\n\t\t}\n\t}\n};\n\nfunction BaseElement() {\n}\n\nBaseElement.prototype = {\n\tcheckMasks: function () {\n\t\tif (!this.data.hasMask) {\n\t\t\treturn false;\n\t\t}\n\t\tvar i = 0;\n\t\tvar len = this.data.masksProperties.length;\n\t\twhile (i < len) {\n\t\t\tif ((this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\treturn false;\n\t},\n\tinitExpressions: function () {\n\t\tthis.layerInterface = LayerExpressionInterface(this);\n\t\tif (this.data.hasMask && this.maskManager) {\n\t\t\tthis.layerInterface.registerMaskInterface(this.maskManager);\n\t\t}\n\t\tvar effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n\t\tthis.layerInterface.registerEffectsInterface(effectsInterface);\n\n\t\tif (this.data.ty === 0 || this.data.xt) {\n\t\t\tthis.compInterface = CompExpressionInterface(this);\n\t\t} else if (this.data.ty === 4) {\n\t\t\tthis.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n\t\t\tthis.layerInterface.content = this.layerInterface.shapeInterface;\n\t\t} else if (this.data.ty === 5) {\n\t\t\tthis.layerInterface.textInterface = TextExpressionInterface(this);\n\t\t\tthis.layerInterface.text = this.layerInterface.textInterface;\n\t\t}\n\t},\n\tsetBlendMode: function () {\n\t\tvar blendModeValue = getBlendMode(this.data.bm);\n\t\tvar elem = this.baseElement || this.layerElement;\n\n\t\telem.style['mix-blend-mode'] = blendModeValue;\n\t},\n\tinitBaseData: function (data, globalData, comp) {\n\t\tthis.globalData = globalData;\n\t\tthis.comp = comp;\n\t\tthis.data = data;\n\t\tthis.layerId = createElementID();\n\n\t\t// Stretch factor for old animations missing this property.\n\t\tif (!this.data.sr) {\n\t\t\tthis.data.sr = 1;\n\t\t}\n\t\t// effects manager\n\t\tthis.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n\t},\n\tgetType: function () {\n\t\treturn this.type;\n\t},\n\tsourceRectAtTime: function () {},\n};\n\n/**\n * @file\n * Handles element's layer frame update.\n * Checks layer in point and out point\n *\n */\n\nfunction FrameElement() {}\n\nFrameElement.prototype = {\n\t/**\n\t * @function\n\t * Initializes frame related properties.\n\t *\n\t */\n\tinitFrame: function () {\n\t\t// set to true when inpoint is rendered\n\t\tthis._isFirstFrame = false;\n\t\t// list of animated properties\n\t\tthis.dynamicProperties = [];\n\t\t// If layer has been modified in current tick this will be true\n\t\tthis._mdf = false;\n\t},\n\t/**\n\t * @function\n\t * Calculates all dynamic values\n\t *\n\t * @param {number} num\n\t * current frame number in Layer's time\n\t * @param {boolean} isVisible\n\t * if layers is currently in range\n\t *\n\t */\n\tprepareProperties: function (num, isVisible) {\n\t\tvar i;\n\t\tvar len = this.dynamicProperties.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (isVisible || (this._isParent && this.dynamicProperties[i].propType === 'transform')) {\n\t\t\t\tthis.dynamicProperties[i].getValue();\n\t\t\t\tif (this.dynamicProperties[i]._mdf) {\n\t\t\t\t\tthis.globalData._mdf = true;\n\t\t\t\t\tthis._mdf = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\taddDynamicProperty: function (prop) {\n\t\tif (this.dynamicProperties.indexOf(prop) === -1) {\n\t\t\tthis.dynamicProperties.push(prop);\n\t\t}\n\t},\n};\n\nconst FootageInterface = (function () {\n\tvar outlineInterfaceFactory = (function (elem) {\n\t\tvar currentPropertyName = '';\n\t\tvar currentProperty = elem.getFootageData();\n\t\tfunction init() {\n\t\t\tcurrentPropertyName = '';\n\t\t\tcurrentProperty = elem.getFootageData();\n\t\t\treturn searchProperty;\n\t\t}\n\t\tfunction searchProperty(value) {\n\t\t\tif (currentProperty[value]) {\n\t\t\t\tcurrentPropertyName = value;\n\t\t\t\tcurrentProperty = currentProperty[value];\n\t\t\t\tif (typeof currentProperty === 'object') {\n\t\t\t\t\treturn searchProperty;\n\t\t\t\t}\n\t\t\t\treturn currentProperty;\n\t\t\t}\n\t\t\tvar propertyNameIndex = value.indexOf(currentPropertyName);\n\t\t\tif (propertyNameIndex !== -1) {\n\t\t\t\tvar index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n\t\t\t\tcurrentProperty = currentProperty[index];\n\t\t\t\tif (typeof currentProperty === 'object') {\n\t\t\t\t\treturn searchProperty;\n\t\t\t\t}\n\t\t\t\treturn currentProperty;\n\t\t\t}\n\t\t\treturn '';\n\t\t}\n\t\treturn init;\n\t});\n\n\tvar dataInterfaceFactory = function (elem) {\n\t\tfunction interfaceFunction(value) {\n\t\t\tif (value === 'Outline') {\n\t\t\t\treturn interfaceFunction.outlineInterface();\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\tinterfaceFunction._name = 'Outline';\n\t\tinterfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n\t\treturn interfaceFunction;\n\t};\n\n\treturn function (elem) {\n\t\tfunction _interfaceFunction(value) {\n\t\t\tif (value === 'Data') {\n\t\t\t\treturn _interfaceFunction.dataInterface;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\t_interfaceFunction._name = 'Data';\n\t\t_interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n\t\treturn _interfaceFunction;\n\t};\n}());\n\nfunction FootageElement(data, globalData, comp) {\n\tthis.initFrame();\n\tthis.initRenderable();\n\tthis.assetData = globalData.getAssetData(data.refId);\n\tthis.footageData = globalData.imageLoader.getAsset(this.assetData);\n\tthis.initBaseData(data, globalData, comp);\n}\n\nFootageElement.prototype.prepareFrame = function () {\n};\n\nextendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\nFootageElement.prototype.getBaseElement = function () {\n\treturn null;\n};\n\nFootageElement.prototype.renderFrame = function () {\n};\n\nFootageElement.prototype.destroy = function () {\n};\n\nFootageElement.prototype.initExpressions = function () {\n\tthis.layerInterface = FootageInterface(this);\n};\n\nFootageElement.prototype.getFootageData = function () {\n\treturn this.footageData;\n};\n\nfunction AudioElement(data, globalData, comp) {\n\tthis.initFrame();\n\tthis.initRenderable();\n\tthis.assetData = globalData.getAssetData(data.refId);\n\tthis.initBaseData(data, globalData, comp);\n\tthis._isPlaying = false;\n\tthis._canPlay = false;\n\tvar assetPath = this.globalData.getAssetsPath(this.assetData);\n\tthis.audio = this.globalData.audioController.createAudio(assetPath);\n\tthis._currentTime = 0;\n\tthis.globalData.audioController.addAudio(this);\n\tthis._volumeMultiplier = 1;\n\tthis._volume = 1;\n\tthis._previousVolume = null;\n\tthis.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\n\tthis.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : { k: [100] }, 1, 0.01, this);\n}\n\nAudioElement.prototype.prepareFrame = function (num) {\n\tthis.prepareRenderableFrame(num, true);\n\tthis.prepareProperties(num, true);\n\tif (!this.tm._placeholder) {\n\t\tvar timeRemapped = this.tm.v;\n\t\tthis._currentTime = timeRemapped;\n\t} else {\n\t\tthis._currentTime = num / this.data.sr;\n\t}\n\tthis._volume = this.lv.v[0];\n\tvar totalVolume = this._volume * this._volumeMultiplier;\n\tif (this._previousVolume !== totalVolume) {\n\t\tthis._previousVolume = totalVolume;\n\t\tthis.audio.volume(totalVolume);\n\t}\n};\n\nextendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\nAudioElement.prototype.renderFrame = function () {\n\tif (this.isInRange && this._canPlay) {\n\t\tif (!this._isPlaying) {\n\t\t\tthis.audio.play();\n\t\t\tthis.audio.seek(this._currentTime / this.globalData.frameRate);\n\t\t\tthis._isPlaying = true;\n\t\t} else if (!this.audio.playing()\n\t\t\t|| Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1\n\t\t) {\n\t\t\tthis.audio.seek(this._currentTime / this.globalData.frameRate);\n\t\t}\n\t}\n};\n\nAudioElement.prototype.show = function () {\n\t// this.audio.play()\n};\n\nAudioElement.prototype.hide = function () {\n\tthis.audio.pause();\n\tthis._isPlaying = false;\n};\n\nAudioElement.prototype.pause = function () {\n\tthis.audio.pause();\n\tthis._isPlaying = false;\n\tthis._canPlay = false;\n};\n\nAudioElement.prototype.resume = function () {\n\tthis._canPlay = true;\n};\n\nAudioElement.prototype.setRate = function (rateValue) {\n\tthis.audio.rate(rateValue);\n};\n\nAudioElement.prototype.volume = function (volumeValue) {\n\tthis._volumeMultiplier = volumeValue;\n\tthis._previousVolume = volumeValue * this._volume;\n\tthis.audio.volume(this._previousVolume);\n};\n\nAudioElement.prototype.getBaseElement = function () {\n\treturn null;\n};\n\nAudioElement.prototype.destroy = function () {\n};\n\nAudioElement.prototype.sourceRectAtTime = function () {\n};\n\nAudioElement.prototype.initExpressions = function () {\n};\n\nfunction BaseRenderer() {}\nBaseRenderer.prototype.checkLayers = function (num) {\n\tvar i;\n\tvar len = this.layers.length;\n\tvar data;\n\tthis.completeLayers = true;\n\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\tif (!this.elements[i]) {\n\t\t\tdata = this.layers[i];\n\t\t\tif (data.ip - data.st <= (num - this.layers[i].st) && data.op - data.st > (num - this.layers[i].st)) {\n\t\t\t\tthis.buildItem(i);\n\t\t\t}\n\t\t}\n\t\tthis.completeLayers = this.elements[i] ? this.completeLayers : false;\n\t}\n\tthis.checkPendingElements();\n};\n\nBaseRenderer.prototype.createItem = function (layer) {\n\tswitch (layer.ty) {\n\t\tcase 2:\n\t\t\treturn this.createImage(layer);\n\t\tcase 0:\n\t\t\treturn this.createComp(layer);\n\t\tcase 1:\n\t\t\treturn this.createSolid(layer);\n\t\tcase 3:\n\t\t\treturn this.createNull(layer);\n\t\tcase 4:\n\t\t\treturn this.createShape(layer);\n\t\tcase 5:\n\t\t\treturn this.createText(layer);\n\t\tcase 6:\n\t\t\treturn this.createAudio(layer);\n\t\tcase 13:\n\t\t\treturn this.createCamera(layer);\n\t\tcase 15:\n\t\t\treturn this.createFootage(layer);\n\t\tdefault:\n\t\t\treturn this.createNull(layer);\n\t}\n};\n\nBaseRenderer.prototype.createCamera = function () {\n\tthrow new Error('You\\'re using a 3d camera. Try the html renderer.');\n};\n\nBaseRenderer.prototype.createAudio = function (data) {\n\treturn new AudioElement(data, this.globalData, this);\n};\n\nBaseRenderer.prototype.createFootage = function (data) {\n\treturn new FootageElement(data, this.globalData, this);\n};\n\nBaseRenderer.prototype.buildAllItems = function () {\n\tvar i;\n\tvar len = this.layers.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.buildItem(i);\n\t}\n\tthis.checkPendingElements();\n};\n\nBaseRenderer.prototype.includeLayers = function (newLayers) {\n\tthis.completeLayers = false;\n\tvar i;\n\tvar len = newLayers.length;\n\tvar j;\n\tvar jLen = this.layers.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tj = 0;\n\t\twhile (j < jLen) {\n\t\t\tif (this.layers[j].id === newLayers[i].id) {\n\t\t\t\tthis.layers[j] = newLayers[i];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tj += 1;\n\t\t}\n\t}\n};\n\nBaseRenderer.prototype.setProjectInterface = function (pInterface) {\n\tthis.globalData.projectInterface = pInterface;\n};\n\nBaseRenderer.prototype.initItems = function () {\n\tif (!this.globalData.progressiveLoad) {\n\t\tthis.buildAllItems();\n\t}\n};\nBaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n\tvar elements = this.elements;\n\tvar layers = this.layers;\n\tvar i = 0;\n\tvar len = layers.length;\n\twhile (i < len) {\n\t\tif (layers[i].ind == parentName) { // eslint-disable-line eqeqeq\n\t\t\tif (!elements[i] || elements[i] === true) {\n\t\t\t\tthis.buildItem(i);\n\t\t\t\tthis.addPendingElement(element);\n\t\t\t} else {\n\t\t\t\thierarchy.push(elements[i]);\n\t\t\t\telements[i].setAsParent();\n\t\t\t\tif (layers[i].parent !== undefined) {\n\t\t\t\t\tthis.buildElementParenting(element, layers[i].parent, hierarchy);\n\t\t\t\t} else {\n\t\t\t\t\telement.setHierarchy(hierarchy);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\ti += 1;\n\t}\n};\n\nBaseRenderer.prototype.addPendingElement = function (element) {\n\tthis.pendingElements.push(element);\n};\n\nBaseRenderer.prototype.searchExtraCompositions = function (assets) {\n\tvar i;\n\tvar len = assets.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (assets[i].xt) {\n\t\t\tvar comp = this.createComp(assets[i]);\n\t\t\tcomp.initExpressions();\n\t\t\tthis.globalData.projectInterface.registerComposition(comp);\n\t\t}\n\t}\n};\n\nBaseRenderer.prototype.getElementByPath = function (path) {\n\tvar pathValue = path.shift();\n\tvar element;\n\tif (typeof pathValue === 'number') {\n\t\telement = this.elements[pathValue];\n\t} else {\n\t\tvar i;\n\t\tvar len = this.elements.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (this.elements[i].data.nm === pathValue) {\n\t\t\t\telement = this.elements[i];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif (path.length === 0) {\n\t\treturn element;\n\t}\n\treturn element.getElementByPath(path);\n};\n\nBaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n\tthis.globalData.fontManager = new FontManager();\n\tthis.globalData.fontManager.addChars(animData.chars);\n\tthis.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n\tthis.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n\tthis.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n\tthis.globalData.imageLoader = this.animationItem.imagePreloader;\n\tthis.globalData.audioController = this.animationItem.audioController;\n\tthis.globalData.frameId = 0;\n\tthis.globalData.frameRate = animData.fr;\n\tthis.globalData.nm = animData.nm;\n\tthis.globalData.compSize = {\n\t\tw: animData.w,\n\t\th: animData.h,\n\t};\n};\n\nfunction TransformElement() {}\n\nTransformElement.prototype = {\n\tinitTransform: function () {\n\t\tthis.finalTransform = {\n\t\t\tmProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : { o: 0 },\n\t\t\t_matMdf: false,\n\t\t\t_opMdf: false,\n\t\t\tmat: new Matrix(),\n\t\t};\n\t\tif (this.data.ao) {\n\t\t\tthis.finalTransform.mProp.autoOriented = true;\n\t\t}\n\n\t\t// TODO: check TYPE 11: Guided elements\n\t\tif (this.data.ty !== 11) {\n\t\t\t// this.createElements();\n\t\t}\n\t},\n\trenderTransform: function () {\n\t\tthis.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n\t\tthis.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n\t\tif (this.hierarchy) {\n\t\t\tvar mat;\n\t\t\tvar finalMat = this.finalTransform.mat;\n\t\t\tvar i = 0;\n\t\t\tvar len = this.hierarchy.length;\n\t\t\t// Checking if any of the transformation matrices in the hierarchy chain has changed.\n\t\t\tif (!this.finalTransform._matMdf) {\n\t\t\t\twhile (i < len) {\n\t\t\t\t\tif (this.hierarchy[i].finalTransform.mProp._mdf) {\n\t\t\t\t\t\tthis.finalTransform._matMdf = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.finalTransform._matMdf) {\n\t\t\t\tmat = this.finalTransform.mProp.v.props;\n\t\t\t\tfinalMat.cloneFromProps(mat);\n\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\tmat = this.hierarchy[i].finalTransform.mProp.v.props;\n\t\t\t\t\tfinalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tglobalToLocal: function (pt) {\n\t\tvar transforms = [];\n\t\ttransforms.push(this.finalTransform);\n\t\tvar flag = true;\n\t\tvar comp = this.comp;\n\t\twhile (flag) {\n\t\t\tif (comp.finalTransform) {\n\t\t\t\tif (comp.data.hasMask) {\n\t\t\t\t\ttransforms.splice(0, 0, comp.finalTransform);\n\t\t\t\t}\n\t\t\t\tcomp = comp.comp;\n\t\t\t} else {\n\t\t\t\tflag = false;\n\t\t\t}\n\t\t}\n\t\tvar i;\n\t\tvar len = transforms.length;\n\t\tvar ptNew;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tptNew = transforms[i].mat.applyToPointArray(0, 0, 0);\n\t\t\t// ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\t\t\tpt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n\t\t}\n\t\treturn pt;\n\t},\n\tmHelper: new Matrix(),\n};\n\nfunction MaskElement(data, element, globalData) {\n\tthis.data = data;\n\tthis.element = element;\n\tthis.globalData = globalData;\n\tthis.storedData = [];\n\tthis.masksProperties = this.data.masksProperties || [];\n\tthis.maskElement = null;\n\tvar defs = this.globalData.defs;\n\tvar i;\n\tvar len = this.masksProperties ? this.masksProperties.length : 0;\n\tthis.viewData = createSizedArray(len);\n\tthis.solidPath = '';\n\n\tvar path;\n\tvar properties = this.masksProperties;\n\tvar count = 0;\n\tvar currentMasks = [];\n\tvar j;\n\tvar jLen;\n\tvar layerId = createElementID();\n\tvar rect;\n\tvar expansor;\n\tvar feMorph;\n\tvar x;\n\tvar maskType = 'clipPath';\n\tvar maskRef = 'clip-path';\n\tfor (i = 0; i < len; i += 1) {\n\t\tif ((properties[i].mode !== 'a' && properties[i].mode !== 'n') || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n\t\t\tmaskType = 'mask';\n\t\t\tmaskRef = 'mask';\n\t\t}\n\n\t\tif ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n\t\t\trect = createNS('rect');\n\t\t\trect.setAttribute('fill', '#ffffff');\n\t\t\trect.setAttribute('width', this.element.comp.data.w || 0);\n\t\t\trect.setAttribute('height', this.element.comp.data.h || 0);\n\t\t\tcurrentMasks.push(rect);\n\t\t} else {\n\t\t\trect = null;\n\t\t}\n\n\t\tpath = createNS('path');\n\t\tif (properties[i].mode === 'n') {\n\t\t\t// TODO move this to a factory or to a constructor\n\t\t\tthis.viewData[i] = {\n\t\t\t\top: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n\t\t\t\tprop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n\t\t\t\telem: path,\n\t\t\t\tlastPath: '',\n\t\t\t};\n\t\t\tdefs.appendChild(path);\n\t\t} else {\n\t\t\tcount += 1;\n\n\t\t\tpath.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n\t\t\tpath.setAttribute('clip-rule', 'nonzero');\n\t\t\tvar filterID;\n\n\t\t\tif (properties[i].x.k !== 0) {\n\t\t\t\tmaskType = 'mask';\n\t\t\t\tmaskRef = 'mask';\n\t\t\t\tx = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n\t\t\t\tfilterID = createElementID();\n\t\t\t\texpansor = createNS('filter');\n\t\t\t\texpansor.setAttribute('id', filterID);\n\t\t\t\tfeMorph = createNS('feMorphology');\n\t\t\t\tfeMorph.setAttribute('operator', 'erode');\n\t\t\t\tfeMorph.setAttribute('in', 'SourceGraphic');\n\t\t\t\tfeMorph.setAttribute('radius', '0');\n\t\t\t\texpansor.appendChild(feMorph);\n\t\t\t\tdefs.appendChild(expansor);\n\t\t\t\tpath.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n\t\t\t} else {\n\t\t\t\tfeMorph = null;\n\t\t\t\tx = null;\n\t\t\t}\n\n\t\t\t// TODO move this to a factory or to a constructor\n\t\t\tthis.storedData[i] = {\n\t\t\t\telem: path,\n\t\t\t\tx: x,\n\t\t\t\texpan: feMorph,\n\t\t\t\tlastPath: '',\n\t\t\t\tlastOperator: '',\n\t\t\t\tfilterId: filterID,\n\t\t\t\tlastRadius: 0,\n\t\t\t};\n\t\t\tif (properties[i].mode === 'i') {\n\t\t\t\tjLen = currentMasks.length;\n\t\t\t\tvar g = createNS('g');\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tg.appendChild(currentMasks[j]);\n\t\t\t\t}\n\t\t\t\tvar mask = createNS('mask');\n\t\t\t\tmask.setAttribute('mask-type', 'alpha');\n\t\t\t\tmask.setAttribute('id', layerId + '_' + count);\n\t\t\t\tmask.appendChild(path);\n\t\t\t\tdefs.appendChild(mask);\n\t\t\t\tg.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n\n\t\t\t\tcurrentMasks.length = 0;\n\t\t\t\tcurrentMasks.push(g);\n\t\t\t} else {\n\t\t\t\tcurrentMasks.push(path);\n\t\t\t}\n\t\t\tif (properties[i].inv && !this.solidPath) {\n\t\t\t\tthis.solidPath = this.createLayerSolidPath();\n\t\t\t}\n\t\t\t// TODO move this to a factory or to a constructor\n\t\t\tthis.viewData[i] = {\n\t\t\t\telem: path,\n\t\t\t\tlastPath: '',\n\t\t\t\top: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n\t\t\t\tprop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n\t\t\t\tinvRect: rect,\n\t\t\t};\n\t\t\tif (!this.viewData[i].prop.k) {\n\t\t\t\tthis.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.maskElement = createNS(maskType);\n\n\tlen = currentMasks.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.maskElement.appendChild(currentMasks[i]);\n\t}\n\n\tif (count > 0) {\n\t\tthis.maskElement.setAttribute('id', layerId);\n\t\tthis.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n\t\tdefs.appendChild(this.maskElement);\n\t}\n\tif (this.viewData.length) {\n\t\tthis.element.addRenderableComponent(this);\n\t}\n}\n\nMaskElement.prototype.getMaskProperty = function (pos) {\n\treturn this.viewData[pos].prop;\n};\n\nMaskElement.prototype.renderFrame = function (isFirstFrame) {\n\tvar finalMat = this.element.finalTransform.mat;\n\tvar i;\n\tvar len = this.masksProperties.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.viewData[i].prop._mdf || isFirstFrame) {\n\t\t\tthis.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n\t\t}\n\t\tif (this.viewData[i].op._mdf || isFirstFrame) {\n\t\t\tthis.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n\t\t}\n\t\tif (this.masksProperties[i].mode !== 'n') {\n\t\t\tif (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n\t\t\t\tthis.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n\t\t\t}\n\t\t\tif (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n\t\t\t\tvar feMorph = this.storedData[i].expan;\n\t\t\t\tif (this.storedData[i].x.v < 0) {\n\t\t\t\t\tif (this.storedData[i].lastOperator !== 'erode') {\n\t\t\t\t\t\tthis.storedData[i].lastOperator = 'erode';\n\t\t\t\t\t\tthis.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n\t\t\t\t\t}\n\t\t\t\t\tfeMorph.setAttribute('radius', -this.storedData[i].x.v);\n\t\t\t\t} else {\n\t\t\t\t\tif (this.storedData[i].lastOperator !== 'dilate') {\n\t\t\t\t\t\tthis.storedData[i].lastOperator = 'dilate';\n\t\t\t\t\t\tthis.storedData[i].elem.setAttribute('filter', null);\n\t\t\t\t\t}\n\t\t\t\t\tthis.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nMaskElement.prototype.getMaskelement = function () {\n\treturn this.maskElement;\n};\n\nMaskElement.prototype.createLayerSolidPath = function () {\n\tvar path = 'M0,0 ';\n\tpath += ' h' + this.globalData.compSize.w;\n\tpath += ' v' + this.globalData.compSize.h;\n\tpath += ' h-' + this.globalData.compSize.w;\n\tpath += ' v-' + this.globalData.compSize.h + ' ';\n\treturn path;\n};\n\nMaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n\tvar pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n\tvar i;\n\tvar len;\n\tlen = pathNodes._length;\n\tfor (i = 1; i < len; i += 1) {\n\t\t// 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\t\tpathString += ' 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\t}\n\t// 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\tif (pathNodes.c && len > 1) {\n\t\tpathString += ' 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\t}\n\t// pathNodes.__renderedString = pathString;\n\n\tif (viewData.lastPath !== pathString) {\n\t\tvar pathShapeValue = '';\n\t\tif (viewData.elem) {\n\t\t\tif (pathNodes.c) {\n\t\t\t\tpathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n\t\t\t}\n\t\t\tviewData.elem.setAttribute('d', pathShapeValue);\n\t\t}\n\t\tviewData.lastPath = pathString;\n\t}\n};\n\nMaskElement.prototype.destroy = function () {\n\tthis.element = null;\n\tthis.globalData = null;\n\tthis.maskElement = null;\n\tthis.data = null;\n\tthis.masksProperties = null;\n};\n\nconst filtersFactory = (function () {\n\tvar ob = {};\n\tob.createFilter = createFilter;\n\tob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n\tfunction createFilter(filId, skipCoordinates) {\n\t\tvar fil = createNS('filter');\n\t\tfil.setAttribute('id', filId);\n\t\tif (skipCoordinates !== true) {\n\t\t\tfil.setAttribute('filterUnits', 'objectBoundingBox');\n\t\t\tfil.setAttribute('x', '0%');\n\t\t\tfil.setAttribute('y', '0%');\n\t\t\tfil.setAttribute('width', '100%');\n\t\t\tfil.setAttribute('height', '100%');\n\t\t}\n\t\treturn fil;\n\t}\n\n\tfunction createAlphaToLuminanceFilter() {\n\t\tvar feColorMatrix = createNS('feColorMatrix');\n\t\tfeColorMatrix.setAttribute('type', 'matrix');\n\t\tfeColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n\t\tfeColorMatrix.setAttribute('values', '0 0 0 1 0  0 0 0 1 0  0 0 0 1 0  0 0 0 1 1');\n\t\treturn feColorMatrix;\n\t}\n\n\treturn ob;\n}());\n\nconst featureSupport = (function () {\n\tvar ob = {\n\t\tmaskType: true,\n\t};\n\tif (/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\t\tob.maskType = false;\n\t}\n\treturn ob;\n}());\n\nvar registeredEffects = {};\nvar idPrefix = 'filter_result_';\n\nfunction SVGEffects(elem) {\n\tvar i;\n\tvar source = 'SourceGraphic';\n\tvar len = elem.data.ef ? elem.data.ef.length : 0;\n\tvar filId = createElementID();\n\tvar fil = filtersFactory.createFilter(filId, true);\n\tvar count = 0;\n\tthis.filters = [];\n\tvar filterManager;\n\tfor (i = 0; i < len; i += 1) {\n\t\tfilterManager = null;\n\t\tvar type = elem.data.ef[i].ty;\n\t\tif (registeredEffects[type]) {\n\t\t\tvar Effect = registeredEffects[type].effect;\n\t\t\tfilterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n\t\t\tsource = idPrefix + count;\n\t\t\tif (registeredEffects[type].countsAsEffect) {\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t}\n\t\tif (filterManager) {\n\t\t\tthis.filters.push(filterManager);\n\t\t}\n\t}\n\tif (count) {\n\t\telem.globalData.defs.appendChild(fil);\n\t\telem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n\t}\n\tif (this.filters.length) {\n\t\telem.addRenderableComponent(this);\n\t}\n}\n\nSVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n\tvar i;\n\tvar len = this.filters.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.filters[i].renderFrame(_isFirstFrame);\n\t}\n};\n\nfunction registerEffect(id, effect, countsAsEffect) {\n\tregisteredEffects[id] = {\n\t\teffect,\n\t\tcountsAsEffect,\n\t};\n}\n\nfunction SVGBaseElement() {\n}\n\nSVGBaseElement.prototype = {\n\tinitRendererElement: function () {\n\t\tthis.layerElement = createNS('g');\n\t},\n\tcreateContainerElements: function () {\n\t\tthis.matteElement = createNS('g');\n\t\tthis.transformedElement = this.layerElement;\n\t\tthis.maskedElement = this.layerElement;\n\t\tthis._sizeChanged = false;\n\t\tvar layerElementParent = null;\n\t\t// If this layer acts as a mask for the following layer\n\t\tvar filId;\n\t\tvar fil;\n\t\tvar gg;\n\t\tif (this.data.td) {\n\t\t\tif (this.data.td == 3 || this.data.td == 1) { // eslint-disable-line eqeqeq\n\t\t\t\tvar masker = createNS('mask');\n\t\t\t\tmasker.setAttribute('id', this.layerId);\n\t\t\t\tmasker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\n\t\t\t\tmasker.appendChild(this.layerElement);\n\t\t\t\tlayerElementParent = masker;\n\t\t\t\tthis.globalData.defs.appendChild(masker);\n\t\t\t\t// This is only for IE and Edge when mask if of type alpha\n\t\t\t\tif (!featureSupport.maskType && this.data.td == 1) { // eslint-disable-line eqeqeq\n\t\t\t\t\tmasker.setAttribute('mask-type', 'luminance');\n\t\t\t\t\tfilId = createElementID();\n\t\t\t\t\tfil = filtersFactory.createFilter(filId);\n\t\t\t\t\tthis.globalData.defs.appendChild(fil);\n\t\t\t\t\tfil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n\t\t\t\t\tgg = createNS('g');\n\t\t\t\t\tgg.appendChild(this.layerElement);\n\t\t\t\t\tlayerElementParent = gg;\n\t\t\t\t\tmasker.appendChild(gg);\n\t\t\t\t\tgg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n\t\t\t\t}\n\t\t\t} else if (this.data.td == 2) { // eslint-disable-line eqeqeq\n\t\t\t\tvar maskGroup = createNS('mask');\n\t\t\t\tmaskGroup.setAttribute('id', this.layerId);\n\t\t\t\tmaskGroup.setAttribute('mask-type', 'alpha');\n\t\t\t\tvar maskGrouper = createNS('g');\n\t\t\t\tmaskGroup.appendChild(maskGrouper);\n\t\t\t\tfilId = createElementID();\n\t\t\t\tfil = filtersFactory.createFilter(filId);\n\t\t\t\t/// /\n\n\t\t\t\t// This solution doesn't work on Android when meta tag with viewport attribute is set\n\t\t\t\t/* 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 1');\n                fil.appendChild(feColorMatrix); */\n\t\t\t\t/// /\n\t\t\t\tvar feCTr = createNS('feComponentTransfer');\n\t\t\t\tfeCTr.setAttribute('in', 'SourceGraphic');\n\t\t\t\tfil.appendChild(feCTr);\n\t\t\t\tvar feFunc = createNS('feFuncA');\n\t\t\t\tfeFunc.setAttribute('type', 'table');\n\t\t\t\tfeFunc.setAttribute('tableValues', '1.0 0.0');\n\t\t\t\tfeCTr.appendChild(feFunc);\n\t\t\t\t/// /\n\t\t\t\tthis.globalData.defs.appendChild(fil);\n\t\t\t\tvar alphaRect = createNS('rect');\n\t\t\t\talphaRect.setAttribute('width', this.comp.data.w);\n\t\t\t\talphaRect.setAttribute('height', this.comp.data.h);\n\t\t\t\talphaRect.setAttribute('x', '0');\n\t\t\t\talphaRect.setAttribute('y', '0');\n\t\t\t\talphaRect.setAttribute('fill', '#ffffff');\n\t\t\t\talphaRect.setAttribute('opacity', '0');\n\t\t\t\tmaskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n\t\t\t\tmaskGrouper.appendChild(alphaRect);\n\t\t\t\tmaskGrouper.appendChild(this.layerElement);\n\t\t\t\tlayerElementParent = maskGrouper;\n\t\t\t\tif (!featureSupport.maskType) {\n\t\t\t\t\tmaskGroup.setAttribute('mask-type', 'luminance');\n\t\t\t\t\tfil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n\t\t\t\t\tgg = createNS('g');\n\t\t\t\t\tmaskGrouper.appendChild(alphaRect);\n\t\t\t\t\tgg.appendChild(this.layerElement);\n\t\t\t\t\tlayerElementParent = gg;\n\t\t\t\t\tmaskGrouper.appendChild(gg);\n\t\t\t\t}\n\t\t\t\tthis.globalData.defs.appendChild(maskGroup);\n\t\t\t}\n\t\t} else if (this.data.tt) {\n\t\t\tthis.matteElement.appendChild(this.layerElement);\n\t\t\tlayerElementParent = this.matteElement;\n\t\t\tthis.baseElement = this.matteElement;\n\t\t} else {\n\t\t\tthis.baseElement = this.layerElement;\n\t\t}\n\t\tif (this.data.ln) {\n\t\t\tthis.layerElement.setAttribute('id', this.data.ln);\n\t\t}\n\t\tif (this.data.cl) {\n\t\t\tthis.layerElement.setAttribute('class', this.data.cl);\n\t\t}\n\t\t// Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\t\tif (this.data.ty === 0 && !this.data.hd) {\n\t\t\tvar cp = createNS('clipPath');\n\t\t\tvar pt = createNS('path');\n\t\t\tpt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n\t\t\tvar clipId = createElementID();\n\t\t\tcp.setAttribute('id', clipId);\n\t\t\tcp.appendChild(pt);\n\t\t\tthis.globalData.defs.appendChild(cp);\n\n\t\t\tif (this.checkMasks()) {\n\t\t\t\tvar cpGroup = createNS('g');\n\t\t\t\tcpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n\t\t\t\tcpGroup.appendChild(this.layerElement);\n\t\t\t\tthis.transformedElement = cpGroup;\n\t\t\t\tif (layerElementParent) {\n\t\t\t\t\tlayerElementParent.appendChild(this.transformedElement);\n\t\t\t\t} else {\n\t\t\t\t\tthis.baseElement = this.transformedElement;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n\t\t\t}\n\t\t}\n\t\tif (this.data.bm !== 0) {\n\t\t\tthis.setBlendMode();\n\t\t}\n\t},\n\trenderElement: function () {\n\t\tif (this.finalTransform._matMdf) {\n\t\t\tthis.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\n\t\t}\n\t\tif (this.finalTransform._opMdf) {\n\t\t\tthis.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\n\t\t}\n\t},\n\tdestroyBaseElement: function () {\n\t\tthis.layerElement = null;\n\t\tthis.matteElement = null;\n\t\tthis.maskManager.destroy();\n\t},\n\tgetBaseElement: function () {\n\t\tif (this.data.hd) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.baseElement;\n\t},\n\tcreateRenderableComponents: function () {\n\t\tthis.maskManager = new MaskElement(this.data, this, this.globalData);\n\t\tthis.renderableEffectsManager = new SVGEffects(this);\n\t},\n\tsetMatte: function (id) {\n\t\tif (!this.matteElement) {\n\t\t\treturn;\n\t\t}\n\t\tthis.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\t},\n};\n\n/**\n * @file\n * Handles AE's layer parenting property.\n *\n */\n\nfunction HierarchyElement() {}\n\nHierarchyElement.prototype = {\n\t/**\n\t * @function\n\t * Initializes hierarchy properties\n\t *\n\t */\n\tinitHierarchy: function () {\n\t\t// element's parent list\n\t\tthis.hierarchy = [];\n\t\t// if element is parent of another layer _isParent will be true\n\t\tthis._isParent = false;\n\t\tthis.checkParenting();\n\t},\n\t/**\n\t * @function\n\t * Sets layer's hierarchy.\n\t * @param {array} hierarch\n\t * layer's parent list\n\t *\n\t */\n\tsetHierarchy: function (hierarchy) {\n\t\tthis.hierarchy = hierarchy;\n\t},\n\t/**\n\t * @function\n\t * Sets layer as parent.\n\t *\n\t */\n\tsetAsParent: function () {\n\t\tthis._isParent = true;\n\t},\n\t/**\n\t * @function\n\t * Searches layer's parenting chain\n\t *\n\t */\n\tcheckParenting: function () {\n\t\tif (this.data.parent !== undefined) {\n\t\t\tthis.comp.buildElementParenting(this, this.data.parent, []);\n\t\t}\n\t},\n};\n\nfunction RenderableDOMElement() {}\n\n(function () {\n\tvar _prototype = {\n\t\tinitElement: function (data, globalData, comp) {\n\t\t\tthis.initFrame();\n\t\t\tthis.initBaseData(data, globalData, comp);\n\t\t\tthis.initTransform(data, globalData, comp);\n\t\t\tthis.initHierarchy();\n\t\t\tthis.initRenderable();\n\t\t\tthis.initRendererElement();\n\t\t\tthis.createContainerElements();\n\t\t\tthis.createRenderableComponents();\n\t\t\tthis.createContent();\n\t\t\tthis.hide();\n\t\t},\n\t\thide: function () {\n\t\t\t// console.log('HIDE', this);\n\t\t\tif (!this.hidden && (!this.isInRange || this.isTransparent)) {\n\t\t\t\tvar elem = this.baseElement || this.layerElement;\n\t\t\t\telem.style.display = 'none';\n\t\t\t\tthis.hidden = true;\n\t\t\t}\n\t\t},\n\t\tshow: function () {\n\t\t\t// console.log('SHOW', this);\n\t\t\tif (this.isInRange && !this.isTransparent) {\n\t\t\t\tif (!this.data.hd) {\n\t\t\t\t\tvar elem = this.baseElement || this.layerElement;\n\t\t\t\t\telem.style.display = 'block';\n\t\t\t\t}\n\t\t\t\tthis.hidden = false;\n\t\t\t\tthis._isFirstFrame = true;\n\t\t\t}\n\t\t},\n\t\trenderFrame: function () {\n\t\t\t// If it is exported as hidden (data.hd === true) no need to render\n\t\t\t// If it is not visible no need to render\n\t\t\tif (this.data.hd || this.hidden) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.renderTransform();\n\t\t\tthis.renderRenderable();\n\t\t\tthis.renderElement();\n\t\t\tthis.renderInnerContent();\n\t\t\tif (this._isFirstFrame) {\n\t\t\t\tthis._isFirstFrame = false;\n\t\t\t}\n\t\t},\n\t\trenderInnerContent: function () {},\n\t\tprepareFrame: function (num) {\n\t\t\tthis._mdf = false;\n\t\t\tthis.prepareRenderableFrame(num);\n\t\t\tthis.prepareProperties(num, this.isInRange);\n\t\t\tthis.checkTransparency();\n\t\t},\n\t\tdestroy: function () {\n\t\t\tthis.innerElem = null;\n\t\t\tthis.destroyBaseElement();\n\t\t},\n\t};\n\textendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n}());\n\nfunction IImageElement(data, globalData, comp) {\n\tthis.assetData = globalData.getAssetData(data.refId);\n\tthis.initElement(data, globalData, comp);\n\tthis.sourceRect = {\n\t\ttop: 0, left: 0, width: this.assetData.w, height: this.assetData.h,\n\t};\n}\n\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\nIImageElement.prototype.createContent = function () {\n\tvar assetPath = this.globalData.getAssetsPath(this.assetData);\n\n\tthis.innerElem = createNS('image');\n\tthis.innerElem.setAttribute('width', this.assetData.w + 'px');\n\tthis.innerElem.setAttribute('height', this.assetData.h + 'px');\n\tthis.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n\tthis.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n\n\tthis.layerElement.appendChild(this.innerElem);\n};\n\nIImageElement.prototype.sourceRectAtTime = function () {\n\treturn this.sourceRect;\n};\n\nfunction ProcessedElement(element, position) {\n\tthis.elem = element;\n\tthis.pos = position;\n}\n\nfunction IShapeElement() {\n}\n\nIShapeElement.prototype = {\n\taddShapeToModifiers: function (data) {\n\t\tvar i;\n\t\tvar len = this.shapeModifiers.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.shapeModifiers[i].addShape(data);\n\t\t}\n\t},\n\tisShapeInAnimatedModifiers: function (data) {\n\t\tvar i = 0;\n\t\tvar len = this.shapeModifiers.length;\n\t\twhile (i < len) {\n\t\t\tif (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n\trenderModifiers: function () {\n\t\tif (!this.shapeModifiers.length) {\n\t\t\treturn;\n\t\t}\n\t\tvar i;\n\t\tvar len = this.shapes.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.shapes[i].sh.reset();\n\t\t}\n\n\t\tlen = this.shapeModifiers.length;\n\t\tvar shouldBreakProcess;\n\t\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\t\tshouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame);\n\t\t\t// workaround to fix cases where a repeater resets the shape so the following processes get called twice\n\t\t\t// TODO: find a better solution for this\n\t\t\tif (shouldBreakProcess) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t},\n\n\tsearchProcessedElement: function (elem) {\n\t\tvar elements = this.processedElements;\n\t\tvar i = 0;\n\t\tvar len = elements.length;\n\t\twhile (i < len) {\n\t\t\tif (elements[i].elem === elem) {\n\t\t\t\treturn elements[i].pos;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\treturn 0;\n\t},\n\taddProcessedElement: function (elem, pos) {\n\t\tvar elements = this.processedElements;\n\t\tvar i = elements.length;\n\t\twhile (i) {\n\t\t\ti -= 1;\n\t\t\tif (elements[i].elem === elem) {\n\t\t\t\telements[i].pos = pos;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\telements.push(new ProcessedElement(elem, pos));\n\t},\n\tprepareFrame: function (num) {\n\t\tthis.prepareRenderableFrame(num);\n\t\tthis.prepareProperties(num, this.isInRange);\n\t},\n};\n\nconst lineCapEnum = {\n\t1: 'butt',\n\t2: 'round',\n\t3: 'square',\n};\n\nconst lineJoinEnum = {\n\t1: 'miter',\n\t2: 'round',\n\t3: 'bevel',\n};\n\nfunction SVGShapeData(transformers, level, shape) {\n\tthis.caches = [];\n\tthis.styles = [];\n\tthis.transformers = transformers;\n\tthis.lStr = '';\n\tthis.sh = shape;\n\tthis.lvl = level;\n\t// TODO find if there are some cases where _isAnimated can be false.\n\t// For now, since shapes add up with other shapes. They have to be calculated every time.\n\t// One way of finding out is checking if all styles associated to this shape depend only of this shape\n\tthis._isAnimated = !!shape.k;\n\t// TODO: commenting this for now since all shapes are animated\n\tvar i = 0;\n\tvar len = transformers.length;\n\twhile (i < len) {\n\t\tif (transformers[i].mProps.dynamicProperties.length) {\n\t\t\tthis._isAnimated = true;\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t}\n}\n\nSVGShapeData.prototype.setAsAnimated = function () {\n\tthis._isAnimated = true;\n};\n\nfunction SVGStyleData(data, level) {\n\tthis.data = data;\n\tthis.type = data.ty;\n\tthis.d = '';\n\tthis.lvl = level;\n\tthis._mdf = false;\n\tthis.closed = data.hd === true;\n\tthis.pElem = createNS('path');\n\tthis.msElem = null;\n}\n\nSVGStyleData.prototype.reset = function () {\n\tthis.d = '';\n\tthis._mdf = false;\n};\n\nfunction DashProperty(elem, data, renderer, container) {\n\tthis.elem = elem;\n\tthis.frameId = -1;\n\tthis.dataProps = createSizedArray(data.length);\n\tthis.renderer = renderer;\n\tthis.k = false;\n\tthis.dashStr = '';\n\tthis.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n\tthis.dashoffset = createTypedArray('float32', 1);\n\tthis.initDynamicPropertyContainer(container);\n\tvar i;\n\tvar len = data.length || 0;\n\tvar prop;\n\tfor (i = 0; i < len; i += 1) {\n\t\tprop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n\t\tthis.k = prop.k || this.k;\n\t\tthis.dataProps[i] = { n: data[i].n, p: prop };\n\t}\n\tif (!this.k) {\n\t\tthis.getValue(true);\n\t}\n\tthis._isAnimated = this.k;\n}\n\nDashProperty.prototype.getValue = function (forceRender) {\n\tif (this.elem.globalData.frameId === this.frameId && !forceRender) {\n\t\treturn;\n\t}\n\tthis.frameId = this.elem.globalData.frameId;\n\tthis.iterateDynamicProperties();\n\tthis._mdf = this._mdf || forceRender;\n\tif (this._mdf) {\n\t\tvar i = 0;\n\t\tvar len = this.dataProps.length;\n\t\tif (this.renderer === 'svg') {\n\t\t\tthis.dashStr = '';\n\t\t}\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (this.dataProps[i].n !== 'o') {\n\t\t\t\tif (this.renderer === 'svg') {\n\t\t\t\t\tthis.dashStr += ' ' + this.dataProps[i].p.v;\n\t\t\t\t} else {\n\t\t\t\t\tthis.dashArray[i] = this.dataProps[i].p.v;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.dashoffset[0] = this.dataProps[i].p.v;\n\t\t\t}\n\t\t}\n\t}\n};\nextendPrototype([DynamicPropertyContainer], DashProperty);\n\nfunction SVGStrokeStyleData(elem, data, styleOb) {\n\tthis.initDynamicPropertyContainer(elem);\n\tthis.getValue = this.iterateDynamicProperties;\n\tthis.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n\tthis.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n\tthis.d = new DashProperty(elem, data.d || {}, 'svg', this);\n\tthis.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n\tthis.style = styleOb;\n\tthis._isAnimated = !!this._isAnimated;\n}\n\nextendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\nfunction SVGFillStyleData(elem, data, styleOb) {\n\tthis.initDynamicPropertyContainer(elem);\n\tthis.getValue = this.iterateDynamicProperties;\n\tthis.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n\tthis.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n\tthis.style = styleOb;\n}\n\nextendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\nfunction SVGNoStyleData(elem, data, styleOb) {\n\tthis.initDynamicPropertyContainer(elem);\n\tthis.getValue = this.iterateDynamicProperties;\n\tthis.style = styleOb;\n}\n\nextendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\nfunction GradientProperty(elem, data, container) {\n\tthis.data = data;\n\tthis.c = createTypedArray('uint8c', data.p * 4);\n\tvar cLength = data.k.k[0].s ? (data.k.k[0].s.length - data.p * 4) : data.k.k.length - data.p * 4;\n\tthis.o = createTypedArray('float32', cLength);\n\tthis._cmdf = false;\n\tthis._omdf = false;\n\tthis._collapsable = this.checkCollapsable();\n\tthis._hasOpacity = cLength;\n\tthis.initDynamicPropertyContainer(container);\n\tthis.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n\tthis.k = this.prop.k;\n\tthis.getValue(true);\n}\n\nGradientProperty.prototype.comparePoints = function (values, points) {\n\tvar i = 0;\n\tvar len = this.o.length / 2;\n\tvar diff;\n\twhile (i < len) {\n\t\tdiff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\t\tif (diff > 0.01) {\n\t\t\treturn false;\n\t\t}\n\t\ti += 1;\n\t}\n\treturn true;\n};\n\nGradientProperty.prototype.checkCollapsable = function () {\n\tif (this.o.length / 2 !== this.c.length / 4) {\n\t\treturn false;\n\t}\n\tif (this.data.k.k[0].s) {\n\t\tvar i = 0;\n\t\tvar len = this.data.k.k.length;\n\t\twhile (i < len) {\n\t\t\tif (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t} else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nGradientProperty.prototype.getValue = function (forceRender) {\n\tthis.prop.getValue();\n\tthis._mdf = false;\n\tthis._cmdf = false;\n\tthis._omdf = false;\n\tif (this.prop._mdf || forceRender) {\n\t\tvar i;\n\t\tvar len = this.data.p * 4;\n\t\tvar mult;\n\t\tvar val;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tmult = i % 4 === 0 ? 100 : 255;\n\t\t\tval = Math.round(this.prop.v[i] * mult);\n\t\t\tif (this.c[i] !== val) {\n\t\t\t\tthis.c[i] = val;\n\t\t\t\tthis._cmdf = !forceRender;\n\t\t\t}\n\t\t}\n\t\tif (this.o.length) {\n\t\t\tlen = this.prop.v.length;\n\t\t\tfor (i = this.data.p * 4; i < len; i += 1) {\n\t\t\t\tmult = i % 2 === 0 ? 100 : 1;\n\t\t\t\tval = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\t\t\t\tif (this.o[i - this.data.p * 4] !== val) {\n\t\t\t\t\tthis.o[i - this.data.p * 4] = val;\n\t\t\t\t\tthis._omdf = !forceRender;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._mdf = !forceRender;\n\t}\n};\n\nextendPrototype([DynamicPropertyContainer], GradientProperty);\n\nfunction SVGGradientFillStyleData(elem, data, styleOb) {\n\tthis.initDynamicPropertyContainer(elem);\n\tthis.getValue = this.iterateDynamicProperties;\n\tthis.initGradientData(elem, data, styleOb);\n}\n\nSVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n\tthis.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n\tthis.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n\tthis.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n\tthis.h = PropertyFactory.getProp(elem, data.h || { k: 0 }, 0, 0.01, this);\n\tthis.a = PropertyFactory.getProp(elem, data.a || { k: 0 }, 0, degToRads, this);\n\tthis.g = new GradientProperty(elem, data.g, this);\n\tthis.style = styleOb;\n\tthis.stops = [];\n\tthis.setGradientData(styleOb.pElem, data);\n\tthis.setGradientOpacity(data, styleOb);\n\tthis._isAnimated = !!this._isAnimated;\n};\n\nSVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n\tvar gradientId = createElementID();\n\tvar gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n\tgfill.setAttribute('id', gradientId);\n\tgfill.setAttribute('spreadMethod', 'pad');\n\tgfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n\tvar stops = [];\n\tvar stop;\n\tvar j;\n\tvar jLen;\n\tjLen = data.g.p * 4;\n\tfor (j = 0; j < jLen; j += 4) {\n\t\tstop = createNS('stop');\n\t\tgfill.appendChild(stop);\n\t\tstops.push(stop);\n\t}\n\tpathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n\tthis.gf = gfill;\n\tthis.cst = stops;\n};\n\nSVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n\tif (this.g._hasOpacity && !this.g._collapsable) {\n\t\tvar stop;\n\t\tvar j;\n\t\tvar jLen;\n\t\tvar mask = createNS('mask');\n\t\tvar maskElement = createNS('path');\n\t\tmask.appendChild(maskElement);\n\t\tvar opacityId = createElementID();\n\t\tvar maskId = createElementID();\n\t\tmask.setAttribute('id', maskId);\n\t\tvar opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n\t\topFill.setAttribute('id', opacityId);\n\t\topFill.setAttribute('spreadMethod', 'pad');\n\t\topFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n\t\tjLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n\t\tvar stops = this.stops;\n\t\tfor (j = data.g.p * 4; j < jLen; j += 2) {\n\t\t\tstop = createNS('stop');\n\t\t\tstop.setAttribute('stop-color', 'rgb(255,255,255)');\n\t\t\topFill.appendChild(stop);\n\t\t\tstops.push(stop);\n\t\t}\n\t\tmaskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\t\tif (data.ty === 'gs') {\n\t\t\tmaskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n\t\t\tmaskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\t\t\tif (data.lj === 1) {\n\t\t\t\tmaskElement.setAttribute('stroke-miterlimit', data.ml);\n\t\t\t}\n\t\t}\n\t\tthis.of = opFill;\n\t\tthis.ms = mask;\n\t\tthis.ost = stops;\n\t\tthis.maskId = maskId;\n\t\tstyleOb.msElem = maskElement;\n\t}\n};\n\nextendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\nfunction SVGGradientStrokeStyleData(elem, data, styleOb) {\n\tthis.initDynamicPropertyContainer(elem);\n\tthis.getValue = this.iterateDynamicProperties;\n\tthis.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n\tthis.d = new DashProperty(elem, data.d || {}, 'svg', this);\n\tthis.initGradientData(elem, data, styleOb);\n\tthis._isAnimated = !!this._isAnimated;\n}\n\nextendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\nfunction ShapeGroupData() {\n\tthis.it = [];\n\tthis.prevViewData = [];\n\tthis.gr = createNS('g');\n}\n\nfunction SVGTransformData(mProps, op, container) {\n\tthis.transform = {\n\t\tmProps: mProps,\n\t\top: op,\n\t\tcontainer: container,\n\t};\n\tthis.elements = [];\n\tthis._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n}\n\nconst buildShapeString = function (pathNodes, length, closed, mat) {\n\tif (length === 0) {\n\t\treturn '';\n\t}\n\tvar _o = pathNodes.o;\n\tvar _i = pathNodes.i;\n\tvar _v = pathNodes.v;\n\tvar i;\n\tvar shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\tfor (i = 1; i < length; i += 1) {\n\t\tshapeString += ' 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\t}\n\tif (closed && length) {\n\t\tshapeString += ' 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\t\tshapeString += 'z';\n\t}\n\treturn shapeString;\n};\n\nconst SVGElementsRenderer = (function () {\n\tvar _identityMatrix = new Matrix();\n\tvar _matrixHelper = new Matrix();\n\n\tvar ob = {\n\t\tcreateRenderFunction: createRenderFunction,\n\t};\n\n\tfunction createRenderFunction(data) {\n\t\tswitch (data.ty) {\n\t\t\tcase 'fl':\n\t\t\t\treturn renderFill;\n\t\t\tcase 'gf':\n\t\t\t\treturn renderGradient;\n\t\t\tcase 'gs':\n\t\t\t\treturn renderGradientStroke;\n\t\t\tcase 'st':\n\t\t\t\treturn renderStroke;\n\t\t\tcase 'sh':\n\t\t\tcase 'el':\n\t\t\tcase 'rc':\n\t\t\tcase 'sr':\n\t\t\t\treturn renderPath;\n\t\t\tcase 'tr':\n\t\t\t\treturn renderContentTransform;\n\t\t\tcase 'no':\n\t\t\t\treturn renderNoop;\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n\n\tfunction renderContentTransform(styleData, itemData, isFirstFrame) {\n\t\tif (isFirstFrame || itemData.transform.op._mdf) {\n\t\t\titemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n\t\t}\n\t\tif (isFirstFrame || itemData.transform.mProps._mdf) {\n\t\t\titemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n\t\t}\n\t}\n\n\tfunction renderNoop() {\n\n\t}\n\n\tfunction renderPath(styleData, itemData, isFirstFrame) {\n\t\tvar j;\n\t\tvar jLen;\n\t\tvar pathStringTransformed;\n\t\tvar redraw;\n\t\tvar pathNodes;\n\t\tvar l;\n\t\tvar lLen = itemData.styles.length;\n\t\tvar lvl = itemData.lvl;\n\t\tvar paths;\n\t\tvar mat;\n\t\tvar props;\n\t\tvar iterations;\n\t\tvar k;\n\t\tfor (l = 0; l < lLen; l += 1) {\n\t\t\tredraw = itemData.sh._mdf || isFirstFrame;\n\t\t\tif (itemData.styles[l].lvl < lvl) {\n\t\t\t\tmat = _matrixHelper.reset();\n\t\t\t\titerations = lvl - itemData.styles[l].lvl;\n\t\t\t\tk = itemData.transformers.length - 1;\n\t\t\t\twhile (!redraw && iterations > 0) {\n\t\t\t\t\tredraw = itemData.transformers[k].mProps._mdf || redraw;\n\t\t\t\t\titerations -= 1;\n\t\t\t\t\tk -= 1;\n\t\t\t\t}\n\t\t\t\tif (redraw) {\n\t\t\t\t\titerations = lvl - itemData.styles[l].lvl;\n\t\t\t\t\tk = itemData.transformers.length - 1;\n\t\t\t\t\twhile (iterations > 0) {\n\t\t\t\t\t\tprops = itemData.transformers[k].mProps.v.props;\n\t\t\t\t\t\tmat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n\t\t\t\t\t\titerations -= 1;\n\t\t\t\t\t\tk -= 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmat = _identityMatrix;\n\t\t\t}\n\t\t\tpaths = itemData.sh.paths;\n\t\t\tjLen = paths._length;\n\t\t\tif (redraw) {\n\t\t\t\tpathStringTransformed = '';\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tpathNodes = paths.shapes[j];\n\t\t\t\t\tif (pathNodes && pathNodes._length) {\n\t\t\t\t\t\tpathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\titemData.caches[l] = pathStringTransformed;\n\t\t\t} else {\n\t\t\t\tpathStringTransformed = itemData.caches[l];\n\t\t\t}\n\t\t\titemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n\t\t\titemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n\t\t}\n\t}\n\n\tfunction renderFill(styleData, itemData, isFirstFrame) {\n\t\tvar styleElem = itemData.style;\n\n\t\tif (itemData.c._mdf || isFirstFrame) {\n\t\t\tstyleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n\t\t}\n\t\tif (itemData.o._mdf || isFirstFrame) {\n\t\t\tstyleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n\t\t}\n\t}\n\n\tfunction renderGradientStroke(styleData, itemData, isFirstFrame) {\n\t\trenderGradient(styleData, itemData, isFirstFrame);\n\t\trenderStroke(styleData, itemData, isFirstFrame);\n\t}\n\n\tfunction renderGradient(styleData, itemData, isFirstFrame) {\n\t\tvar gfill = itemData.gf;\n\t\tvar hasOpacity = itemData.g._hasOpacity;\n\t\tvar pt1 = itemData.s.v;\n\t\tvar pt2 = itemData.e.v;\n\n\t\tif (itemData.o._mdf || isFirstFrame) {\n\t\t\tvar attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n\t\t\titemData.style.pElem.setAttribute(attr, itemData.o.v);\n\t\t}\n\t\tif (itemData.s._mdf || isFirstFrame) {\n\t\t\tvar attr1 = styleData.t === 1 ? 'x1' : 'cx';\n\t\t\tvar attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n\t\t\tgfill.setAttribute(attr1, pt1[0]);\n\t\t\tgfill.setAttribute(attr2, pt1[1]);\n\t\t\tif (hasOpacity && !itemData.g._collapsable) {\n\t\t\t\titemData.of.setAttribute(attr1, pt1[0]);\n\t\t\t\titemData.of.setAttribute(attr2, pt1[1]);\n\t\t\t}\n\t\t}\n\t\tvar stops;\n\t\tvar i;\n\t\tvar len;\n\t\tvar stop;\n\t\tif (itemData.g._cmdf || isFirstFrame) {\n\t\t\tstops = itemData.cst;\n\t\t\tvar cValues = itemData.g.c;\n\t\t\tlen = stops.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tstop = stops[i];\n\t\t\t\tstop.setAttribute('offset', cValues[i * 4] + '%');\n\t\t\t\tstop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n\t\t\t}\n\t\t}\n\t\tif (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n\t\t\tvar oValues = itemData.g.o;\n\t\t\tif (itemData.g._collapsable) {\n\t\t\t\tstops = itemData.cst;\n\t\t\t} else {\n\t\t\t\tstops = itemData.ost;\n\t\t\t}\n\t\t\tlen = stops.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tstop = stops[i];\n\t\t\t\tif (!itemData.g._collapsable) {\n\t\t\t\t\tstop.setAttribute('offset', oValues[i * 2] + '%');\n\t\t\t\t}\n\t\t\t\tstop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n\t\t\t}\n\t\t}\n\t\tif (styleData.t === 1) {\n\t\t\tif (itemData.e._mdf || isFirstFrame) {\n\t\t\t\tgfill.setAttribute('x2', pt2[0]);\n\t\t\t\tgfill.setAttribute('y2', pt2[1]);\n\t\t\t\tif (hasOpacity && !itemData.g._collapsable) {\n\t\t\t\t\titemData.of.setAttribute('x2', pt2[0]);\n\t\t\t\t\titemData.of.setAttribute('y2', pt2[1]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar rad;\n\t\t\tif (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n\t\t\t\trad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n\t\t\t\tgfill.setAttribute('r', rad);\n\t\t\t\tif (hasOpacity && !itemData.g._collapsable) {\n\t\t\t\t\titemData.of.setAttribute('r', rad);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n\t\t\t\tif (!rad) {\n\t\t\t\t\trad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n\t\t\t\t}\n\t\t\t\tvar ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n\n\t\t\t\tvar percent = itemData.h.v;\n\t\t\t\tif (percent >= 1) {\n\t\t\t\t\tpercent = 0.99;\n\t\t\t\t} else if (percent <= -1) {\n\t\t\t\t\tpercent = -0.99;\n\t\t\t\t}\n\t\t\t\tvar dist = rad * percent;\n\t\t\t\tvar x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n\t\t\t\tvar y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n\t\t\t\tgfill.setAttribute('fx', x);\n\t\t\t\tgfill.setAttribute('fy', y);\n\t\t\t\tif (hasOpacity && !itemData.g._collapsable) {\n\t\t\t\t\titemData.of.setAttribute('fx', x);\n\t\t\t\t\titemData.of.setAttribute('fy', y);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// gfill.setAttribute('fy','200');\n\t\t}\n\t}\n\n\tfunction renderStroke(styleData, itemData, isFirstFrame) {\n\t\tvar styleElem = itemData.style;\n\t\tvar d = itemData.d;\n\t\tif (d && (d._mdf || isFirstFrame) && d.dashStr) {\n\t\t\tstyleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n\t\t\tstyleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n\t\t}\n\t\tif (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n\t\t\tstyleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n\t\t}\n\t\tif (itemData.o._mdf || isFirstFrame) {\n\t\t\tstyleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n\t\t}\n\t\tif (itemData.w._mdf || isFirstFrame) {\n\t\t\tstyleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\t\t\tif (styleElem.msElem) {\n\t\t\t\tstyleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn ob;\n}());\n\nfunction SVGShapeElement(data, globalData, comp) {\n\t// List of drawable elements\n\tthis.shapes = [];\n\t// Full shape data\n\tthis.shapesData = data.shapes;\n\t// List of styles that will be applied to shapes\n\tthis.stylesList = [];\n\t// List of modifiers that will be applied to shapes\n\tthis.shapeModifiers = [];\n\t// List of items in shape tree\n\tthis.itemsData = [];\n\t// List of items in previous shape tree\n\tthis.processedElements = [];\n\t// List of animated components\n\tthis.animatedContents = [];\n\tthis.initElement(data, globalData, comp);\n\t// Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n\t// List of elements that have been created\n\tthis.prevViewData = [];\n\t// Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n}\n\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\nSVGShapeElement.prototype.initSecondaryElement = function () {\n};\n\nSVGShapeElement.prototype.identityMatrix = new Matrix();\n\nSVGShapeElement.prototype.buildExpressionInterface = function () {};\n\nSVGShapeElement.prototype.createContent = function () {\n\tthis.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n\tthis.filterUniqueShapes();\n};\n\n/*\nThis method searches for multiple shapes that affect a single element and one of them is animated\n*/\nSVGShapeElement.prototype.filterUniqueShapes = function () {\n\tvar i;\n\tvar len = this.shapes.length;\n\tvar shape;\n\tvar j;\n\tvar jLen = this.stylesList.length;\n\tvar style;\n\tvar tempShapes = [];\n\tvar areAnimated = false;\n\tfor (j = 0; j < jLen; j += 1) {\n\t\tstyle = this.stylesList[j];\n\t\tareAnimated = false;\n\t\ttempShapes.length = 0;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tshape = this.shapes[i];\n\t\t\tif (shape.styles.indexOf(style) !== -1) {\n\t\t\t\ttempShapes.push(shape);\n\t\t\t\tareAnimated = shape._isAnimated || areAnimated;\n\t\t\t}\n\t\t}\n\t\tif (tempShapes.length > 1 && areAnimated) {\n\t\t\tthis.setShapesAsAnimated(tempShapes);\n\t\t}\n\t}\n};\n\nSVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n\tvar i;\n\tvar len = shapes.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tshapes[i].setAsAnimated();\n\t}\n};\n\nSVGShapeElement.prototype.createStyleElement = function (data, level) {\n\t// TODO: prevent drawing of hidden styles\n\tvar elementData;\n\tvar styleOb = new SVGStyleData(data, level);\n\n\tvar pathElement = styleOb.pElem;\n\tif (data.ty === 'st') {\n\t\telementData = new SVGStrokeStyleData(this, data, styleOb);\n\t} else if (data.ty === 'fl') {\n\t\telementData = new SVGFillStyleData(this, data, styleOb);\n\t} else if (data.ty === 'gf' || data.ty === 'gs') {\n\t\tvar GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n\t\telementData = new GradientConstructor(this, data, styleOb);\n\t\tthis.globalData.defs.appendChild(elementData.gf);\n\t\tif (elementData.maskId) {\n\t\t\tthis.globalData.defs.appendChild(elementData.ms);\n\t\t\tthis.globalData.defs.appendChild(elementData.of);\n\t\t\tpathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n\t\t}\n\t} else if (data.ty === 'no') {\n\t\telementData = new SVGNoStyleData(this, data, styleOb);\n\t}\n\n\tif (data.ty === 'st' || data.ty === 'gs') {\n\t\tpathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n\t\tpathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\t\tpathElement.setAttribute('fill-opacity', '0');\n\t\tif (data.lj === 1) {\n\t\t\tpathElement.setAttribute('stroke-miterlimit', data.ml);\n\t\t}\n\t}\n\n\tif (data.r === 2) {\n\t\tpathElement.setAttribute('fill-rule', 'evenodd');\n\t}\n\n\tif (data.ln) {\n\t\tpathElement.setAttribute('id', data.ln);\n\t}\n\tif (data.cl) {\n\t\tpathElement.setAttribute('class', data.cl);\n\t}\n\tif (data.bm) {\n\t\tpathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n\t}\n\tthis.stylesList.push(styleOb);\n\tthis.addToAnimatedContents(data, elementData);\n\treturn elementData;\n};\n\nSVGShapeElement.prototype.createGroupElement = function (data) {\n\tvar elementData = new ShapeGroupData();\n\tif (data.ln) {\n\t\telementData.gr.setAttribute('id', data.ln);\n\t}\n\tif (data.cl) {\n\t\telementData.gr.setAttribute('class', data.cl);\n\t}\n\tif (data.bm) {\n\t\telementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n\t}\n\treturn elementData;\n};\n\nSVGShapeElement.prototype.createTransformElement = function (data, container) {\n\tvar transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n\tvar elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n\tthis.addToAnimatedContents(data, elementData);\n\treturn elementData;\n};\n\nSVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n\tvar ty = 4;\n\tif (data.ty === 'rc') {\n\t\tty = 5;\n\t} else if (data.ty === 'el') {\n\t\tty = 6;\n\t} else if (data.ty === 'sr') {\n\t\tty = 7;\n\t}\n\tvar shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n\tvar elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n\tthis.shapes.push(elementData);\n\tthis.addShapeToModifiers(elementData);\n\tthis.addToAnimatedContents(data, elementData);\n\treturn elementData;\n};\n\nSVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n\tvar i = 0;\n\tvar len = this.animatedContents.length;\n\twhile (i < len) {\n\t\tif (this.animatedContents[i].element === element) {\n\t\t\treturn;\n\t\t}\n\t\ti += 1;\n\t}\n\tthis.animatedContents.push({\n\t\tfn: SVGElementsRenderer.createRenderFunction(data),\n\t\telement: element,\n\t\tdata: data,\n\t});\n};\n\nSVGShapeElement.prototype.setElementStyles = function (elementData) {\n\tvar arr = elementData.styles;\n\tvar j;\n\tvar jLen = this.stylesList.length;\n\tfor (j = 0; j < jLen; j += 1) {\n\t\tif (!this.stylesList[j].closed) {\n\t\t\tarr.push(this.stylesList[j]);\n\t\t}\n\t}\n};\n\nSVGShapeElement.prototype.reloadShapes = function () {\n\tthis._isFirstFrame = true;\n\tvar i;\n\tvar len = this.itemsData.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.prevViewData[i] = this.itemsData[i];\n\t}\n\tthis.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n\tthis.filterUniqueShapes();\n\tlen = this.dynamicProperties.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.dynamicProperties[i].getValue();\n\t}\n\tthis.renderModifiers();\n};\n\nSVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n\tvar ownTransformers = [].concat(transformers);\n\tvar i;\n\tvar len = arr.length - 1;\n\tvar j;\n\tvar jLen;\n\tvar ownStyles = [];\n\tvar ownModifiers = [];\n\tvar currentTransform;\n\tvar modifier;\n\tvar processedPos;\n\tfor (i = len; i >= 0; i -= 1) {\n\t\tprocessedPos = this.searchProcessedElement(arr[i]);\n\t\tif (!processedPos) {\n\t\t\tarr[i]._render = render;\n\t\t} else {\n\t\t\titemsData[i] = prevViewData[processedPos - 1];\n\t\t}\n\t\tif (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n\t\t\tif (!processedPos) {\n\t\t\t\titemsData[i] = this.createStyleElement(arr[i], level);\n\t\t\t} else {\n\t\t\t\titemsData[i].style.closed = false;\n\t\t\t}\n\t\t\tif (arr[i]._render) {\n\t\t\t\tif (itemsData[i].style.pElem.parentNode !== container) {\n\t\t\t\t\tcontainer.appendChild(itemsData[i].style.pElem);\n\t\t\t\t}\n\t\t\t}\n\t\t\townStyles.push(itemsData[i].style);\n\t\t} else if (arr[i].ty === 'gr') {\n\t\t\tif (!processedPos) {\n\t\t\t\titemsData[i] = this.createGroupElement(arr[i]);\n\t\t\t} else {\n\t\t\t\tjLen = itemsData[i].it.length;\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\titemsData[i].prevViewData[j] = itemsData[i].it[j];\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\t\t\tif (arr[i]._render) {\n\t\t\t\tif (itemsData[i].gr.parentNode !== container) {\n\t\t\t\t\tcontainer.appendChild(itemsData[i].gr);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (arr[i].ty === 'tr') {\n\t\t\tif (!processedPos) {\n\t\t\t\titemsData[i] = this.createTransformElement(arr[i], container);\n\t\t\t}\n\t\t\tcurrentTransform = itemsData[i].transform;\n\t\t\townTransformers.push(currentTransform);\n\t\t} else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n\t\t\tif (!processedPos) {\n\t\t\t\titemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n\t\t\t}\n\t\t\tthis.setElementStyles(itemsData[i]);\n\t\t} else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {\n\t\t\tif (!processedPos) {\n\t\t\t\tmodifier = ShapeModifiers.getModifier(arr[i].ty);\n\t\t\t\tmodifier.init(this, arr[i]);\n\t\t\t\titemsData[i] = modifier;\n\t\t\t\tthis.shapeModifiers.push(modifier);\n\t\t\t} else {\n\t\t\t\tmodifier = itemsData[i];\n\t\t\t\tmodifier.closed = false;\n\t\t\t}\n\t\t\townModifiers.push(modifier);\n\t\t} else if (arr[i].ty === 'rp') {\n\t\t\tif (!processedPos) {\n\t\t\t\tmodifier = ShapeModifiers.getModifier(arr[i].ty);\n\t\t\t\titemsData[i] = modifier;\n\t\t\t\tmodifier.init(this, arr, i, itemsData);\n\t\t\t\tthis.shapeModifiers.push(modifier);\n\t\t\t\trender = false;\n\t\t\t} else {\n\t\t\t\tmodifier = itemsData[i];\n\t\t\t\tmodifier.closed = true;\n\t\t\t}\n\t\t\townModifiers.push(modifier);\n\t\t}\n\t\tthis.addProcessedElement(arr[i], i + 1);\n\t}\n\tlen = ownStyles.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\townStyles[i].closed = true;\n\t}\n\tlen = ownModifiers.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\townModifiers[i].closed = true;\n\t}\n};\n\nSVGShapeElement.prototype.renderInnerContent = function () {\n\tthis.renderModifiers();\n\tvar i;\n\tvar len = this.stylesList.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.stylesList[i].reset();\n\t}\n\tthis.renderShape();\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.stylesList[i]._mdf || this._isFirstFrame) {\n\t\t\tif (this.stylesList[i].msElem) {\n\t\t\t\tthis.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d);\n\t\t\t\t// Adding M0 0 fixes same mask bug on all browsers\n\t\t\t\tthis.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n\t\t\t}\n\t\t\tthis.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n\t\t}\n\t}\n};\n\nSVGShapeElement.prototype.renderShape = function () {\n\tvar i;\n\tvar len = this.animatedContents.length;\n\tvar animatedContent;\n\tfor (i = 0; i < len; i += 1) {\n\t\tanimatedContent = this.animatedContents[i];\n\t\tif ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n\t\t\tanimatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n\t\t}\n\t}\n};\n\nSVGShapeElement.prototype.destroy = function () {\n\tthis.destroyBaseElement();\n\tthis.shapesData = null;\n\tthis.itemsData = null;\n};\n\nfunction LetterProps(o, sw, sc, fc, m, p) {\n\tthis.o = o;\n\tthis.sw = sw;\n\tthis.sc = sc;\n\tthis.fc = fc;\n\tthis.m = m;\n\tthis.p = p;\n\tthis._mdf = {\n\t\to: true,\n\t\tsw: !!sw,\n\t\tsc: !!sc,\n\t\tfc: !!fc,\n\t\tm: true,\n\t\tp: true,\n\t};\n}\n\nLetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n\tthis._mdf.o = false;\n\tthis._mdf.sw = false;\n\tthis._mdf.sc = false;\n\tthis._mdf.fc = false;\n\tthis._mdf.m = false;\n\tthis._mdf.p = false;\n\tvar updated = false;\n\n\tif (this.o !== o) {\n\t\tthis.o = o;\n\t\tthis._mdf.o = true;\n\t\tupdated = true;\n\t}\n\tif (this.sw !== sw) {\n\t\tthis.sw = sw;\n\t\tthis._mdf.sw = true;\n\t\tupdated = true;\n\t}\n\tif (this.sc !== sc) {\n\t\tthis.sc = sc;\n\t\tthis._mdf.sc = true;\n\t\tupdated = true;\n\t}\n\tif (this.fc !== fc) {\n\t\tthis.fc = fc;\n\t\tthis._mdf.fc = true;\n\t\tupdated = true;\n\t}\n\tif (this.m !== m) {\n\t\tthis.m = m;\n\t\tthis._mdf.m = true;\n\t\tupdated = true;\n\t}\n\tif (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\t\tthis.p = p;\n\t\tthis._mdf.p = true;\n\t\tupdated = true;\n\t}\n\treturn updated;\n};\n\nfunction TextProperty(elem, data) {\n\tthis._frameId = initialDefaultFrame;\n\tthis.pv = '';\n\tthis.v = '';\n\tthis.kf = false;\n\tthis._isFirstFrame = true;\n\tthis._mdf = false;\n\tthis.data = data;\n\tthis.elem = elem;\n\tthis.comp = this.elem.comp;\n\tthis.keysIndex = 0;\n\tthis.canResize = false;\n\tthis.minimumFontSize = 1;\n\tthis.effectsSequence = [];\n\tthis.currentData = {\n\t\tascent: 0,\n\t\tboxWidth: this.defaultBoxWidth,\n\t\tf: '',\n\t\tfStyle: '',\n\t\tfWeight: '',\n\t\tfc: '',\n\t\tj: '',\n\t\tjustifyOffset: '',\n\t\tl: [],\n\t\tlh: 0,\n\t\tlineWidths: [],\n\t\tls: '',\n\t\tof: '',\n\t\ts: '',\n\t\tsc: '',\n\t\tsw: 0,\n\t\tt: 0,\n\t\ttr: 0,\n\t\tsz: 0,\n\t\tps: null,\n\t\tfillColorAnim: false,\n\t\tstrokeColorAnim: false,\n\t\tstrokeWidthAnim: false,\n\t\tyOffset: 0,\n\t\tfinalSize: 0,\n\t\tfinalText: [],\n\t\tfinalLineHeight: 0,\n\t\t__complete: false,\n\n\t};\n\tthis.copyData(this.currentData, this.data.d.k[0].s);\n\n\tif (!this.searchProperty()) {\n\t\tthis.completeTextData(this.currentData);\n\t}\n}\n\nTextProperty.prototype.defaultBoxWidth = [0, 0];\n\nTextProperty.prototype.copyData = function (obj, data) {\n\tfor (var s in data) {\n\t\tif (Object.prototype.hasOwnProperty.call(data, s)) {\n\t\t\tobj[s] = data[s];\n\t\t}\n\t}\n\treturn obj;\n};\n\nTextProperty.prototype.setCurrentData = function (data) {\n\tif (!data.__complete) {\n\t\tthis.completeTextData(data);\n\t}\n\tthis.currentData = data;\n\tthis.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n\tthis._mdf = true;\n};\n\nTextProperty.prototype.searchProperty = function () {\n\treturn this.searchKeyframes();\n};\n\nTextProperty.prototype.searchKeyframes = function () {\n\tthis.kf = this.data.d.k.length > 1;\n\tif (this.kf) {\n\t\tthis.addEffect(this.getKeyframeValue.bind(this));\n\t}\n\treturn this.kf;\n};\n\nTextProperty.prototype.addEffect = function (effectFunction) {\n\tthis.effectsSequence.push(effectFunction);\n\tthis.elem.addDynamicProperty(this);\n};\n\nTextProperty.prototype.getValue = function (_finalValue) {\n\tif ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n\t\treturn;\n\t}\n\tthis.currentData.t = this.data.d.k[this.keysIndex].s.t;\n\tvar currentValue = this.currentData;\n\tvar currentIndex = this.keysIndex;\n\tif (this.lock) {\n\t\tthis.setCurrentData(this.currentData);\n\t\treturn;\n\t}\n\tthis.lock = true;\n\tthis._mdf = false;\n\tvar i; var\n\t\tlen = this.effectsSequence.length;\n\tvar finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\tfor (i = 0; i < len; i += 1) {\n\t\t// Checking if index changed to prevent creating a new object every time the expression updates.\n\t\tif (currentIndex !== this.keysIndex) {\n\t\t\tfinalValue = this.effectsSequence[i](finalValue, finalValue.t);\n\t\t} else {\n\t\t\tfinalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n\t\t}\n\t}\n\tif (currentValue !== finalValue) {\n\t\tthis.setCurrentData(finalValue);\n\t}\n\tthis.v = this.currentData;\n\tthis.pv = this.v;\n\tthis.lock = false;\n\tthis.frameId = this.elem.globalData.frameId;\n};\n\nTextProperty.prototype.getKeyframeValue = function () {\n\tvar textKeys = this.data.d.k;\n\tvar frameNum = this.elem.comp.renderedFrame;\n\tvar i = 0; var\n\t\tlen = textKeys.length;\n\twhile (i <= len - 1) {\n\t\tif (i === len - 1 || textKeys[i + 1].t > frameNum) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t}\n\tif (this.keysIndex !== i) {\n\t\tthis.keysIndex = i;\n\t}\n\treturn this.data.d.k[this.keysIndex].s;\n};\n\nTextProperty.prototype.buildFinalText = function (text) {\n\tvar charactersArray = [];\n\tvar i = 0;\n\tvar len = text.length;\n\tvar charCode;\n\tvar secondCharCode;\n\tvar shouldCombine = false;\n\twhile (i < len) {\n\t\tcharCode = text.charCodeAt(i);\n\t\tif (FontManager.isCombinedCharacter(charCode)) {\n\t\t\tcharactersArray[charactersArray.length - 1] += text.charAt(i);\n\t\t} else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n\t\t\tsecondCharCode = text.charCodeAt(i + 1);\n\t\t\tif (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n\t\t\t\tif (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\n\t\t\t\t\tcharactersArray[charactersArray.length - 1] += text.substr(i, 2);\n\t\t\t\t\tshouldCombine = false;\n\t\t\t\t} else {\n\t\t\t\t\tcharactersArray.push(text.substr(i, 2));\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t} else {\n\t\t\t\tcharactersArray.push(text.charAt(i));\n\t\t\t}\n\t\t} else if (charCode > 0xDBFF) {\n\t\t\tsecondCharCode = text.charCodeAt(i + 1);\n\t\t\tif (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\n\t\t\t\tshouldCombine = true;\n\t\t\t\tcharactersArray[charactersArray.length - 1] += text.substr(i, 2);\n\t\t\t\ti += 1;\n\t\t\t} else {\n\t\t\t\tcharactersArray.push(text.charAt(i));\n\t\t\t}\n\t\t} else if (FontManager.isZeroWidthJoiner(charCode)) {\n\t\t\tcharactersArray[charactersArray.length - 1] += text.charAt(i);\n\t\t\tshouldCombine = true;\n\t\t} else {\n\t\t\tcharactersArray.push(text.charAt(i));\n\t\t}\n\t\ti += 1;\n\t}\n\treturn charactersArray;\n};\n\nTextProperty.prototype.completeTextData = function (documentData) {\n\tdocumentData.__complete = true;\n\tvar fontManager = this.elem.globalData.fontManager;\n\tvar data = this.data;\n\tvar letters = [];\n\tvar i; var\n\t\tlen;\n\tvar newLineFlag; var index = 0; var\n\t\tval;\n\tvar anchorGrouping = data.m.g;\n\tvar currentSize = 0; var currentPos = 0; var currentLine = 0; var\n\t\tlineWidths = [];\n\tvar lineWidth = 0;\n\tvar maxLineWidth = 0;\n\tvar j; var\n\t\tjLen;\n\tvar fontData = fontManager.getFontByName(documentData.f);\n\tvar charData; var\n\t\tcLength = 0;\n\n\tvar fontProps = getFontProperties(fontData);\n\tdocumentData.fWeight = fontProps.weight;\n\tdocumentData.fStyle = fontProps.style;\n\tdocumentData.finalSize = documentData.s;\n\tdocumentData.finalText = this.buildFinalText(documentData.t);\n\tlen = documentData.finalText.length;\n\tdocumentData.finalLineHeight = documentData.lh;\n\tvar trackingOffset = (documentData.tr / 1000) * documentData.finalSize;\n\tvar charCode;\n\tif (documentData.sz) {\n\t\tvar flag = true;\n\t\tvar boxWidth = documentData.sz[0];\n\t\tvar boxHeight = documentData.sz[1];\n\t\tvar currentHeight; var\n\t\t\tfinalText;\n\t\twhile (flag) {\n\t\t\tfinalText = this.buildFinalText(documentData.t);\n\t\t\tcurrentHeight = 0;\n\t\t\tlineWidth = 0;\n\t\t\tlen = finalText.length;\n\t\t\ttrackingOffset = (documentData.tr / 1000) * documentData.finalSize;\n\t\t\tvar lastSpaceIndex = -1;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tcharCode = finalText[i].charCodeAt(0);\n\t\t\t\tnewLineFlag = false;\n\t\t\t\tif (finalText[i] === ' ') {\n\t\t\t\t\tlastSpaceIndex = i;\n\t\t\t\t} else if (charCode === 13 || charCode === 3) {\n\t\t\t\t\tlineWidth = 0;\n\t\t\t\t\tnewLineFlag = true;\n\t\t\t\t\tcurrentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n\t\t\t\t}\n\t\t\t\tif (fontManager.chars) {\n\t\t\t\t\tcharData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n\t\t\t\t\tcLength = newLineFlag ? 0 : (charData.w * documentData.finalSize) / 100;\n\t\t\t\t} else {\n\t\t\t\t\t// tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n\t\t\t\t\tcLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n\t\t\t\t}\n\t\t\t\tif (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n\t\t\t\t\tif (lastSpaceIndex === -1) {\n\t\t\t\t\t\tlen += 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ti = lastSpaceIndex;\n\t\t\t\t\t}\n\t\t\t\t\tcurrentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n\t\t\t\t\tfinalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r');\n\t\t\t\t\t// finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\t\t\t\t\tlastSpaceIndex = -1;\n\t\t\t\t\tlineWidth = 0;\n\t\t\t\t} else {\n\t\t\t\t\tlineWidth += cLength;\n\t\t\t\t\tlineWidth += trackingOffset;\n\t\t\t\t}\n\t\t\t}\n\t\t\tcurrentHeight += (fontData.ascent * documentData.finalSize) / 100;\n\t\t\tif (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n\t\t\t\tdocumentData.finalSize -= 1;\n\t\t\t\tdocumentData.finalLineHeight = (documentData.finalSize * documentData.lh) / documentData.s;\n\t\t\t} else {\n\t\t\t\tdocumentData.finalText = finalText;\n\t\t\t\tlen = documentData.finalText.length;\n\t\t\t\tflag = false;\n\t\t\t}\n\t\t}\n\t}\n\tlineWidth = -trackingOffset;\n\tcLength = 0;\n\tvar uncollapsedSpaces = 0;\n\tvar currentChar;\n\tfor (i = 0; i < len; i += 1) {\n\t\tnewLineFlag = false;\n\t\tcurrentChar = documentData.finalText[i];\n\t\tcharCode = currentChar.charCodeAt(0);\n\t\tif (charCode === 13 || charCode === 3) {\n\t\t\tuncollapsedSpaces = 0;\n\t\t\tlineWidths.push(lineWidth);\n\t\t\tmaxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n\t\t\tlineWidth = -2 * trackingOffset;\n\t\t\tval = '';\n\t\t\tnewLineFlag = true;\n\t\t\tcurrentLine += 1;\n\t\t} else {\n\t\t\tval = currentChar;\n\t\t}\n\t\tif (fontManager.chars) {\n\t\t\tcharData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n\t\t\tcLength = newLineFlag ? 0 : (charData.w * documentData.finalSize) / 100;\n\t\t} else {\n\t\t\t// var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n\t\t\t// tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n\t\t\tcLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n\t\t}\n\n\t\t//\n\t\tif (currentChar === ' ') {\n\t\t\tuncollapsedSpaces += cLength + trackingOffset;\n\t\t} else {\n\t\t\tlineWidth += cLength + trackingOffset + uncollapsedSpaces;\n\t\t\tuncollapsedSpaces = 0;\n\t\t}\n\t\tletters.push({\n\t\t\tl: cLength, an: cLength, add: currentSize, n: newLineFlag, anIndexes: [], val: val, line: currentLine, animatorJustifyOffset: 0,\n\t\t});\n\t\tif (anchorGrouping == 2) { // eslint-disable-line eqeqeq\n\t\t\tcurrentSize += cLength;\n\t\t\tif (val === '' || val === ' ' || i === len - 1) {\n\t\t\t\tif (val === '' || val === ' ') {\n\t\t\t\t\tcurrentSize -= cLength;\n\t\t\t\t}\n\t\t\t\twhile (currentPos <= i) {\n\t\t\t\t\tletters[currentPos].an = currentSize;\n\t\t\t\t\tletters[currentPos].ind = index;\n\t\t\t\t\tletters[currentPos].extra = cLength;\n\t\t\t\t\tcurrentPos += 1;\n\t\t\t\t}\n\t\t\t\tindex += 1;\n\t\t\t\tcurrentSize = 0;\n\t\t\t}\n\t\t} else if (anchorGrouping == 3) { // eslint-disable-line eqeqeq\n\t\t\tcurrentSize += cLength;\n\t\t\tif (val === '' || i === len - 1) {\n\t\t\t\tif (val === '') {\n\t\t\t\t\tcurrentSize -= cLength;\n\t\t\t\t}\n\t\t\t\twhile (currentPos <= i) {\n\t\t\t\t\tletters[currentPos].an = currentSize;\n\t\t\t\t\tletters[currentPos].ind = index;\n\t\t\t\t\tletters[currentPos].extra = cLength;\n\t\t\t\t\tcurrentPos += 1;\n\t\t\t\t}\n\t\t\t\tcurrentSize = 0;\n\t\t\t\tindex += 1;\n\t\t\t}\n\t\t} else {\n\t\t\tletters[index].ind = index;\n\t\t\tletters[index].extra = 0;\n\t\t\tindex += 1;\n\t\t}\n\t}\n\tdocumentData.l = letters;\n\tmaxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n\tlineWidths.push(lineWidth);\n\tif (documentData.sz) {\n\t\tdocumentData.boxWidth = documentData.sz[0];\n\t\tdocumentData.justifyOffset = 0;\n\t} else {\n\t\tdocumentData.boxWidth = maxLineWidth;\n\t\tswitch (documentData.j) {\n\t\t\tcase 1:\n\t\t\t\tdocumentData.justifyOffset = -documentData.boxWidth;\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tdocumentData.justifyOffset = -documentData.boxWidth / 2;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tdocumentData.justifyOffset = 0;\n\t\t}\n\t}\n\tdocumentData.lineWidths = lineWidths;\n\n\tvar animators = data.a; var animatorData; var\n\t\tletterData;\n\tjLen = animators.length;\n\tvar based; var ind; var\n\t\tindexes = [];\n\tfor (j = 0; j < jLen; j += 1) {\n\t\tanimatorData = animators[j];\n\t\tif (animatorData.a.sc) {\n\t\t\tdocumentData.strokeColorAnim = true;\n\t\t}\n\t\tif (animatorData.a.sw) {\n\t\t\tdocumentData.strokeWidthAnim = true;\n\t\t}\n\t\tif (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n\t\t\tdocumentData.fillColorAnim = true;\n\t\t}\n\t\tind = 0;\n\t\tbased = animatorData.s.b;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tletterData = letters[i];\n\t\t\tletterData.anIndexes[j] = ind;\n\t\t\tif ((based == 1 && letterData.val !== '') || (based == 2 && letterData.val !== '' && letterData.val !== ' ') || (based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1)) || (based == 4 && (letterData.n || i == len - 1))) { // eslint-disable-line eqeqeq\n\t\t\t\tif (animatorData.s.rn === 1) {\n\t\t\t\t\tindexes.push(ind);\n\t\t\t\t}\n\t\t\t\tind += 1;\n\t\t\t}\n\t\t}\n\t\tdata.a[j].s.totalChars = ind;\n\t\tvar currentInd = -1; var\n\t\t\tnewInd;\n\t\tif (animatorData.s.rn === 1) {\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tletterData = letters[i];\n\t\t\t\tif (currentInd != letterData.anIndexes[j]) { // eslint-disable-line eqeqeq\n\t\t\t\t\tcurrentInd = letterData.anIndexes[j];\n\t\t\t\t\tnewInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n\t\t\t\t}\n\t\t\t\tletterData.anIndexes[j] = newInd;\n\t\t\t}\n\t\t}\n\t}\n\tdocumentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n\tdocumentData.ls = documentData.ls || 0;\n\tdocumentData.ascent = (fontData.ascent * documentData.finalSize) / 100;\n};\n\nTextProperty.prototype.updateDocumentData = function (newData, index) {\n\tindex = index === undefined ? this.keysIndex : index;\n\tvar dData = this.copyData({}, this.data.d.k[index].s);\n\tdData = this.copyData(dData, newData);\n\tthis.data.d.k[index].s = dData;\n\tthis.recalculate(index);\n\tthis.elem.addDynamicProperty(this);\n};\n\nTextProperty.prototype.recalculate = function (index) {\n\tvar dData = this.data.d.k[index].s;\n\tdData.__complete = false;\n\tthis.keysIndex = 0;\n\tthis._isFirstFrame = true;\n\tthis.getValue(dData);\n};\n\nTextProperty.prototype.canResizeFont = function (_canResize) {\n\tthis.canResize = _canResize;\n\tthis.recalculate(this.keysIndex);\n\tthis.elem.addDynamicProperty(this);\n};\n\nTextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n\tthis.minimumFontSize = Math.floor(_fontValue) || 1;\n\tthis.recalculate(this.keysIndex);\n\tthis.elem.addDynamicProperty(this);\n};\n\nconst TextSelectorProp = (function () {\n\tvar max = Math.max;\n\tvar min = Math.min;\n\tvar floor = Math.floor;\n\n\tfunction TextSelectorPropFactory(elem, data) {\n\t\tthis._currentTextLength = -1;\n\t\tthis.k = false;\n\t\tthis.data = data;\n\t\tthis.elem = elem;\n\t\tthis.comp = elem.comp;\n\t\tthis.finalS = 0;\n\t\tthis.finalE = 0;\n\t\tthis.initDynamicPropertyContainer(elem);\n\t\tthis.s = PropertyFactory.getProp(elem, data.s || { k: 0 }, 0, 0, this);\n\t\tif ('e' in data) {\n\t\t\tthis.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n\t\t} else {\n\t\t\tthis.e = { v: 100 };\n\t\t}\n\t\tthis.o = PropertyFactory.getProp(elem, data.o || { k: 0 }, 0, 0, this);\n\t\tthis.xe = PropertyFactory.getProp(elem, data.xe || { k: 0 }, 0, 0, this);\n\t\tthis.ne = PropertyFactory.getProp(elem, data.ne || { k: 0 }, 0, 0, this);\n\t\tthis.sm = PropertyFactory.getProp(elem, data.sm || { k: 100 }, 0, 0, this);\n\t\tthis.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\t\tif (!this.dynamicProperties.length) {\n\t\t\tthis.getValue();\n\t\t}\n\t}\n\n\tTextSelectorPropFactory.prototype = {\n\t\tgetMult: function (ind) {\n\t\t\tif (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n\t\t\t\tthis.getValue();\n\t\t\t}\n\t\t\tvar x1 = 0;\n\t\t\tvar y1 = 0;\n\t\t\tvar x2 = 1;\n\t\t\tvar y2 = 1;\n\t\t\tif (this.ne.v > 0) {\n\t\t\t\tx1 = this.ne.v / 100.0;\n\t\t\t} else {\n\t\t\t\ty1 = -this.ne.v / 100.0;\n\t\t\t}\n\t\t\tif (this.xe.v > 0) {\n\t\t\t\tx2 = 1.0 - this.xe.v / 100.0;\n\t\t\t} else {\n\t\t\t\ty2 = 1.0 + this.xe.v / 100.0;\n\t\t\t}\n\t\t\tvar easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n\n\t\t\tvar mult = 0;\n\t\t\tvar s = this.finalS;\n\t\t\tvar e = this.finalE;\n\t\t\tvar type = this.data.sh;\n\t\t\tif (type === 2) {\n\t\t\t\tif (e === s) {\n\t\t\t\t\tmult = ind >= e ? 1 : 0;\n\t\t\t\t} else {\n\t\t\t\t\tmult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\t\t\t\t}\n\t\t\t\tmult = easer(mult);\n\t\t\t} else if (type === 3) {\n\t\t\t\tif (e === s) {\n\t\t\t\t\tmult = ind >= e ? 0 : 1;\n\t\t\t\t} else {\n\t\t\t\t\tmult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\t\t\t\t}\n\n\t\t\t\tmult = easer(mult);\n\t\t\t} else if (type === 4) {\n\t\t\t\tif (e === s) {\n\t\t\t\t\tmult = 0;\n\t\t\t\t} else {\n\t\t\t\t\tmult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\t\t\t\t\tif (mult < 0.5) {\n\t\t\t\t\t\tmult *= 2;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmult = 1 - 2 * (mult - 0.5);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tmult = easer(mult);\n\t\t\t} else if (type === 5) {\n\t\t\t\tif (e === s) {\n\t\t\t\t\tmult = 0;\n\t\t\t\t} else {\n\t\t\t\t\tvar tot = e - s;\n\t\t\t\t\t/* ind += 0.5;\n                    mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\t\t\t\t\tind = min(max(0, ind + 0.5 - s), e - s);\n\t\t\t\t\tvar x = -tot / 2 + ind;\n\t\t\t\t\tvar a = tot / 2;\n\t\t\t\t\tmult = Math.sqrt(1 - (x * x) / (a * a));\n\t\t\t\t}\n\t\t\t\tmult = easer(mult);\n\t\t\t} else if (type === 6) {\n\t\t\t\tif (e === s) {\n\t\t\t\t\tmult = 0;\n\t\t\t\t} else {\n\t\t\t\t\tind = min(max(0, ind + 0.5 - s), e - s);\n\t\t\t\t\tmult = (1 + (Math.cos((Math.PI + Math.PI * 2 * (ind) / (e - s))))) / 2; // eslint-disable-line\n\t\t\t\t}\n\t\t\t\tmult = easer(mult);\n\t\t\t} else {\n\t\t\t\tif (ind >= floor(s)) {\n\t\t\t\t\tif (ind - s < 0) {\n\t\t\t\t\t\tmult = max(0, min(min(e, 1) - (s - ind), 1));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmult = max(0, min(e - ind, 1));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tmult = easer(mult);\n\t\t\t}\n\t\t\t// Smoothness implementation.\n\t\t\t// The smoothness represents a reduced range of the original [0; 1] range.\n\t\t\t// if smoothness is 25%, the new range will be [0.375; 0.625]\n\t\t\t// Steps are:\n\t\t\t// - find the lower value of the new range (threshold)\n\t\t\t// - if multiplier is smaller than that value, floor it to 0\n\t\t\t// - if it is larger,\n\t\t\t//     - subtract the threshold\n\t\t\t//     - divide it by the smoothness (this will return the range to [0; 1])\n\t\t\t// Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\t\t\tif (this.sm.v !== 100) {\n\t\t\t\tvar smoothness = this.sm.v * 0.01;\n\t\t\t\tif (smoothness === 0) {\n\t\t\t\t\tsmoothness = 0.00000001;\n\t\t\t\t}\n\t\t\t\tvar threshold = 0.5 - smoothness * 0.5;\n\t\t\t\tif (mult < threshold) {\n\t\t\t\t\tmult = 0;\n\t\t\t\t} else {\n\t\t\t\t\tmult = (mult - threshold) / smoothness;\n\t\t\t\t\tif (mult > 1) {\n\t\t\t\t\t\tmult = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn mult * this.a.v;\n\t\t},\n\t\tgetValue: function (newCharsFlag) {\n\t\t\tthis.iterateDynamicProperties();\n\t\t\tthis._mdf = newCharsFlag || this._mdf;\n\t\t\tthis._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\t\t\tif (newCharsFlag && this.data.r === 2) {\n\t\t\t\tthis.e.v = this._currentTextLength;\n\t\t\t}\n\t\t\tvar divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n\t\t\tvar o = this.o.v / divisor;\n\t\t\tvar s = this.s.v / divisor + o;\n\t\t\tvar e = (this.e.v / divisor) + o;\n\t\t\tif (s > e) {\n\t\t\t\tvar _s = s;\n\t\t\t\ts = e;\n\t\t\t\te = _s;\n\t\t\t}\n\t\t\tthis.finalS = s;\n\t\t\tthis.finalE = e;\n\t\t},\n\t};\n\textendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n\tfunction getTextSelectorProp(elem, data, arr) {\n\t\treturn new TextSelectorPropFactory(elem, data, arr);\n\t}\n\n\treturn {\n\t\tgetTextSelectorProp: getTextSelectorProp,\n\t};\n}());\n\nfunction TextAnimatorDataProperty(elem, animatorProps, container) {\n\tvar defaultData = { propType: false };\n\tvar getProp = PropertyFactory.getProp;\n\tvar textAnimatorAnimatables = animatorProps.a;\n\tthis.a = {\n\t\tr: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n\t\trx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n\t\try: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n\t\tsk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n\t\tsa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n\t\ts: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n\t\ta: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n\t\to: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n\t\tp: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n\t\tsw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n\t\tsc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n\t\tfc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n\t\tfh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n\t\tfs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n\t\tfb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n\t\tt: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData,\n\t};\n\n\tthis.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n\tthis.s.t = animatorProps.s.t;\n}\n\nfunction TextAnimatorProperty(textData, renderType, elem) {\n\tthis._isFirstFrame = true;\n\tthis._hasMaskedPath = false;\n\tthis._frameId = -1;\n\tthis._textData = textData;\n\tthis._renderType = renderType;\n\tthis._elem = elem;\n\tthis._animatorsData = createSizedArray(this._textData.a.length);\n\tthis._pathData = {};\n\tthis._moreOptions = {\n\t\talignment: {},\n\t};\n\tthis.renderedLetters = [];\n\tthis.lettersChangedFlag = false;\n\tthis.initDynamicPropertyContainer(elem);\n}\n\nTextAnimatorProperty.prototype.searchProperties = function () {\n\tvar i;\n\tvar len = this._textData.a.length;\n\tvar animatorProps;\n\tvar getProp = PropertyFactory.getProp;\n\tfor (i = 0; i < len; i += 1) {\n\t\tanimatorProps = this._textData.a[i];\n\t\tthis._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n\t}\n\tif (this._textData.p && 'm' in this._textData.p) {\n\t\tthis._pathData = {\n\t\t\ta: getProp(this._elem, this._textData.p.a, 0, 0, this),\n\t\t\tf: getProp(this._elem, this._textData.p.f, 0, 0, this),\n\t\t\tl: getProp(this._elem, this._textData.p.l, 0, 0, this),\n\t\t\tr: getProp(this._elem, this._textData.p.r, 0, 0, this),\n\t\t\tp: getProp(this._elem, this._textData.p.p, 0, 0, this),\n\t\t\tm: this._elem.maskManager.getMaskProperty(this._textData.p.m),\n\t\t};\n\t\tthis._hasMaskedPath = true;\n\t} else {\n\t\tthis._hasMaskedPath = false;\n\t}\n\tthis._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n};\n\nTextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n\tthis.lettersChangedFlag = lettersChangedFlag;\n\tif (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n\t\treturn;\n\t}\n\tthis._isFirstFrame = false;\n\tvar alignment = this._moreOptions.alignment.v;\n\tvar animators = this._animatorsData;\n\tvar textData = this._textData;\n\tvar matrixHelper = this.mHelper;\n\tvar renderType = this._renderType;\n\tvar renderedLettersCount = this.renderedLetters.length;\n\tvar xPos;\n\tvar yPos;\n\tvar i;\n\tvar len;\n\tvar letters = documentData.l;\n\tvar pathInfo;\n\tvar currentLength;\n\tvar currentPoint;\n\tvar segmentLength;\n\tvar flag;\n\tvar pointInd;\n\tvar segmentInd;\n\tvar prevPoint;\n\tvar points;\n\tvar segments;\n\tvar partialLength;\n\tvar totalLength;\n\tvar perc;\n\tvar tanAngle;\n\tvar mask;\n\tif (this._hasMaskedPath) {\n\t\tmask = this._pathData.m;\n\t\tif (!this._pathData.n || this._pathData._mdf) {\n\t\t\tvar paths = mask.v;\n\t\t\tif (this._pathData.r.v) {\n\t\t\t\tpaths = paths.reverse();\n\t\t\t}\n\t\t\t// TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\t\t\tpathInfo = {\n\t\t\t\ttLength: 0,\n\t\t\t\tsegments: [],\n\t\t\t};\n\t\t\tlen = paths._length - 1;\n\t\t\tvar bezierData;\n\t\t\ttotalLength = 0;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tbezierData = bez.buildBezierData(paths.v[i],\n\t\t\t\t\tpaths.v[i + 1],\n\t\t\t\t\t[paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]],\n\t\t\t\t\t[paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n\t\t\t\tpathInfo.tLength += bezierData.segmentLength;\n\t\t\t\tpathInfo.segments.push(bezierData);\n\t\t\t\ttotalLength += bezierData.segmentLength;\n\t\t\t}\n\t\t\ti = len;\n\t\t\tif (mask.v.c) {\n\t\t\t\tbezierData = bez.buildBezierData(paths.v[i],\n\t\t\t\t\tpaths.v[0],\n\t\t\t\t\t[paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]],\n\t\t\t\t\t[paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n\t\t\t\tpathInfo.tLength += bezierData.segmentLength;\n\t\t\t\tpathInfo.segments.push(bezierData);\n\t\t\t\ttotalLength += bezierData.segmentLength;\n\t\t\t}\n\t\t\tthis._pathData.pi = pathInfo;\n\t\t}\n\t\tpathInfo = this._pathData.pi;\n\n\t\tcurrentLength = this._pathData.f.v;\n\t\tsegmentInd = 0;\n\t\tpointInd = 1;\n\t\tsegmentLength = 0;\n\t\tflag = true;\n\t\tsegments = pathInfo.segments;\n\t\tif (currentLength < 0 && mask.v.c) {\n\t\t\tif (pathInfo.tLength < Math.abs(currentLength)) {\n\t\t\t\tcurrentLength = -Math.abs(currentLength) % pathInfo.tLength;\n\t\t\t}\n\t\t\tsegmentInd = segments.length - 1;\n\t\t\tpoints = segments[segmentInd].points;\n\t\t\tpointInd = points.length - 1;\n\t\t\twhile (currentLength < 0) {\n\t\t\t\tcurrentLength += points[pointInd].partialLength;\n\t\t\t\tpointInd -= 1;\n\t\t\t\tif (pointInd < 0) {\n\t\t\t\t\tsegmentInd -= 1;\n\t\t\t\t\tpoints = segments[segmentInd].points;\n\t\t\t\t\tpointInd = points.length - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tpoints = segments[segmentInd].points;\n\t\tprevPoint = points[pointInd - 1];\n\t\tcurrentPoint = points[pointInd];\n\t\tpartialLength = currentPoint.partialLength;\n\t}\n\n\tlen = letters.length;\n\txPos = 0;\n\tyPos = 0;\n\tvar yOff = documentData.finalSize * 1.2 * 0.714;\n\tvar firstLine = true;\n\tvar animatorProps;\n\tvar animatorSelector;\n\tvar j;\n\tvar jLen;\n\tvar letterValue;\n\n\tjLen = animators.length;\n\n\tvar mult;\n\tvar ind = -1;\n\tvar offf;\n\tvar xPathPos;\n\tvar yPathPos;\n\tvar initPathPos = currentLength;\n\tvar initSegmentInd = segmentInd;\n\tvar initPointInd = pointInd;\n\tvar currentLine = -1;\n\tvar elemOpacity;\n\tvar sc;\n\tvar sw;\n\tvar fc;\n\tvar k;\n\tvar letterSw;\n\tvar letterSc;\n\tvar letterFc;\n\tvar letterM = '';\n\tvar letterP = this.defaultPropsArray;\n\tvar letterO;\n\n\t//\n\tif (documentData.j === 2 || documentData.j === 1) {\n\t\tvar animatorJustifyOffset = 0;\n\t\tvar animatorFirstCharOffset = 0;\n\t\tvar justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n\t\tvar lastIndex = 0;\n\t\tvar isNewLine = true;\n\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (letters[i].n) {\n\t\t\t\tif (animatorJustifyOffset) {\n\t\t\t\t\tanimatorJustifyOffset += animatorFirstCharOffset;\n\t\t\t\t}\n\t\t\t\twhile (lastIndex < i) {\n\t\t\t\t\tletters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n\t\t\t\t\tlastIndex += 1;\n\t\t\t\t}\n\t\t\t\tanimatorJustifyOffset = 0;\n\t\t\t\tisNewLine = true;\n\t\t\t} else {\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tanimatorProps = animators[j].a;\n\t\t\t\t\tif (animatorProps.t.propType) {\n\t\t\t\t\t\tif (isNewLine && documentData.j === 2) {\n\t\t\t\t\t\t\tanimatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tanimatorSelector = animators[j].s;\n\t\t\t\t\t\tmult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\tanimatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tisNewLine = false;\n\t\t\t}\n\t\t}\n\t\tif (animatorJustifyOffset) {\n\t\t\tanimatorJustifyOffset += animatorFirstCharOffset;\n\t\t}\n\t\twhile (lastIndex < i) {\n\t\t\tletters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n\t\t\tlastIndex += 1;\n\t\t}\n\t}\n\t//\n\n\tfor (i = 0; i < len; i += 1) {\n\t\tmatrixHelper.reset();\n\t\telemOpacity = 1;\n\t\tif (letters[i].n) {\n\t\t\txPos = 0;\n\t\t\tyPos += documentData.yOffset;\n\t\t\tyPos += firstLine ? 1 : 0;\n\t\t\tcurrentLength = initPathPos;\n\t\t\tfirstLine = false;\n\t\t\tif (this._hasMaskedPath) {\n\t\t\t\tsegmentInd = initSegmentInd;\n\t\t\t\tpointInd = initPointInd;\n\t\t\t\tpoints = segments[segmentInd].points;\n\t\t\t\tprevPoint = points[pointInd - 1];\n\t\t\t\tcurrentPoint = points[pointInd];\n\t\t\t\tpartialLength = currentPoint.partialLength;\n\t\t\t\tsegmentLength = 0;\n\t\t\t}\n\t\t\tletterM = '';\n\t\t\tletterFc = '';\n\t\t\tletterSw = '';\n\t\t\tletterO = '';\n\t\t\tletterP = this.defaultPropsArray;\n\t\t} else {\n\t\t\tif (this._hasMaskedPath) {\n\t\t\t\tif (currentLine !== letters[i].line) {\n\t\t\t\t\tswitch (documentData.j) {\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\tcurrentLength += totalLength - documentData.lineWidths[letters[i].line];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\tcurrentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcurrentLine = letters[i].line;\n\t\t\t\t}\n\t\t\t\tif (ind !== letters[i].ind) {\n\t\t\t\t\tif (letters[ind]) {\n\t\t\t\t\t\tcurrentLength += letters[ind].extra;\n\t\t\t\t\t}\n\t\t\t\t\tcurrentLength += letters[i].an / 2;\n\t\t\t\t\tind = letters[i].ind;\n\t\t\t\t}\n\t\t\t\tcurrentLength += (alignment[0] * letters[i].an) * 0.005;\n\t\t\t\tvar animatorOffset = 0;\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tanimatorProps = animators[j].a;\n\t\t\t\t\tif (animatorProps.p.propType) {\n\t\t\t\t\t\tanimatorSelector = animators[j].s;\n\t\t\t\t\t\tmult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\tanimatorOffset += animatorProps.p.v[0] * mult[0];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimatorOffset += animatorProps.p.v[0] * mult;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (animatorProps.a.propType) {\n\t\t\t\t\t\tanimatorSelector = animators[j].s;\n\t\t\t\t\t\tmult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\tanimatorOffset += animatorProps.a.v[0] * mult[0];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimatorOffset += animatorProps.a.v[0] * mult;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tflag = true;\n\t\t\t\t// Force alignment only works with a single line for now\n\t\t\t\tif (this._pathData.a.v) {\n\t\t\t\t\tcurrentLength = 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\t\t\t\t\tcurrentLength += this._pathData.f.v;\n\t\t\t\t}\n\t\t\t\twhile (flag) {\n\t\t\t\t\tif (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n\t\t\t\t\t\tperc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n\t\t\t\t\t\txPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n\t\t\t\t\t\tyPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n\t\t\t\t\t\tmatrixHelper.translate((-alignment[0] * letters[i].an) * 0.005, -(alignment[1] * yOff) * 0.01);\n\t\t\t\t\t\tflag = false;\n\t\t\t\t\t} else if (points) {\n\t\t\t\t\t\tsegmentLength += currentPoint.partialLength;\n\t\t\t\t\t\tpointInd += 1;\n\t\t\t\t\t\tif (pointInd >= points.length) {\n\t\t\t\t\t\t\tpointInd = 0;\n\t\t\t\t\t\t\tsegmentInd += 1;\n\t\t\t\t\t\t\tif (!segments[segmentInd]) {\n\t\t\t\t\t\t\t\tif (mask.v.c) {\n\t\t\t\t\t\t\t\t\tpointInd = 0;\n\t\t\t\t\t\t\t\t\tsegmentInd = 0;\n\t\t\t\t\t\t\t\t\tpoints = segments[segmentInd].points;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsegmentLength -= currentPoint.partialLength;\n\t\t\t\t\t\t\t\t\tpoints = null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tpoints = segments[segmentInd].points;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (points) {\n\t\t\t\t\t\t\tprevPoint = currentPoint;\n\t\t\t\t\t\t\tcurrentPoint = points[pointInd];\n\t\t\t\t\t\t\tpartialLength = currentPoint.partialLength;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tofff = letters[i].an / 2 - letters[i].add;\n\t\t\t\tmatrixHelper.translate(-offf, 0, 0);\n\t\t\t} else {\n\t\t\t\tofff = letters[i].an / 2 - letters[i].add;\n\t\t\t\tmatrixHelper.translate(-offf, 0, 0);\n\n\t\t\t\t// Grouping alignment\n\t\t\t\tmatrixHelper.translate((-alignment[0] * letters[i].an) * 0.005, (-alignment[1] * yOff) * 0.01, 0);\n\t\t\t}\n\n\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\tanimatorProps = animators[j].a;\n\t\t\t\tif (animatorProps.t.propType) {\n\t\t\t\t\tanimatorSelector = animators[j].s;\n\t\t\t\t\tmult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\t\t\t\t\t// This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\t\t\t\t\tif (xPos !== 0 || documentData.j !== 0) {\n\t\t\t\t\t\tif (this._hasMaskedPath) {\n\t\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\t\tcurrentLength += animatorProps.t.v * mult[0];\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcurrentLength += animatorProps.t.v * mult;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (mult.length) {\n\t\t\t\t\t\t\txPos += animatorProps.t.v * mult[0];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\txPos += animatorProps.t.v * mult;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (documentData.strokeWidthAnim) {\n\t\t\t\tsw = documentData.sw || 0;\n\t\t\t}\n\t\t\tif (documentData.strokeColorAnim) {\n\t\t\t\tif (documentData.sc) {\n\t\t\t\t\tsc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n\t\t\t\t} else {\n\t\t\t\t\tsc = [0, 0, 0];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (documentData.fillColorAnim && documentData.fc) {\n\t\t\t\tfc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n\t\t\t}\n\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\tanimatorProps = animators[j].a;\n\t\t\t\tif (animatorProps.a.propType) {\n\t\t\t\t\tanimatorSelector = animators[j].s;\n\t\t\t\t\tmult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\tmatrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\tanimatorProps = animators[j].a;\n\t\t\t\tif (animatorProps.s.propType) {\n\t\t\t\t\tanimatorSelector = animators[j].s;\n\t\t\t\t\tmult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\tmatrixHelper.scale(1 + ((animatorProps.s.v[0] - 1) * mult[0]), 1 + ((animatorProps.s.v[1] - 1) * mult[1]), 1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatrixHelper.scale(1 + ((animatorProps.s.v[0] - 1) * mult), 1 + ((animatorProps.s.v[1] - 1) * mult), 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\tanimatorProps = animators[j].a;\n\t\t\t\tanimatorSelector = animators[j].s;\n\t\t\t\tmult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\t\t\t\tif (animatorProps.sk.propType) {\n\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\tmatrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (animatorProps.r.propType) {\n\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\tmatrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatrixHelper.rotateZ(-animatorProps.r.v * mult);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (animatorProps.ry.propType) {\n\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\tmatrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatrixHelper.rotateY(animatorProps.ry.v * mult);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (animatorProps.rx.propType) {\n\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\tmatrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatrixHelper.rotateX(animatorProps.rx.v * mult);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (animatorProps.o.propType) {\n\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\telemOpacity += ((animatorProps.o.v) * mult[0] - elemOpacity) * mult[0];\n\t\t\t\t\t} else {\n\t\t\t\t\t\telemOpacity += ((animatorProps.o.v) * mult - elemOpacity) * mult;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\tsw += animatorProps.sw.v * mult[0];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsw += animatorProps.sw.v * mult;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (documentData.strokeColorAnim && animatorProps.sc.propType) {\n\t\t\t\t\tfor (k = 0; k < 3; k += 1) {\n\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\tsc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (documentData.fillColorAnim && documentData.fc) {\n\t\t\t\t\tif (animatorProps.fc.propType) {\n\t\t\t\t\t\tfor (k = 0; k < 3; k += 1) {\n\t\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\t\tfc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\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\tif (animatorProps.fh.propType) {\n\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\tfc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfc = addHueToRGB(fc, animatorProps.fh.v * mult);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (animatorProps.fs.propType) {\n\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\tfc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (animatorProps.fb.propType) {\n\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\tfc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\tanimatorProps = animators[j].a;\n\n\t\t\t\tif (animatorProps.p.propType) {\n\t\t\t\t\tanimatorSelector = animators[j].s;\n\t\t\t\t\tmult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\t\t\t\t\tif (this._hasMaskedPath) {\n\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\tmatrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmatrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (mult.length) {\n\t\t\t\t\t\tmatrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (documentData.strokeWidthAnim) {\n\t\t\t\tletterSw = sw < 0 ? 0 : sw;\n\t\t\t}\n\t\t\tif (documentData.strokeColorAnim) {\n\t\t\t\tletterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n\t\t\t}\n\t\t\tif (documentData.fillColorAnim && documentData.fc) {\n\t\t\t\tletterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n\t\t\t}\n\n\t\t\tif (this._hasMaskedPath) {\n\t\t\t\tmatrixHelper.translate(0, -documentData.ls);\n\n\t\t\t\tmatrixHelper.translate(0, (alignment[1] * yOff) * 0.01 + yPos, 0);\n\t\t\t\tif (this._pathData.p.v) {\n\t\t\t\t\ttanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n\t\t\t\t\tvar rot = (Math.atan(tanAngle) * 180) / Math.PI;\n\t\t\t\t\tif (currentPoint.point[0] < prevPoint.point[0]) {\n\t\t\t\t\t\trot += 180;\n\t\t\t\t\t}\n\t\t\t\t\tmatrixHelper.rotate((-rot * Math.PI) / 180);\n\t\t\t\t}\n\t\t\t\tmatrixHelper.translate(xPathPos, yPathPos, 0);\n\t\t\t\tcurrentLength -= (alignment[0] * letters[i].an) * 0.005;\n\t\t\t\tif (letters[i + 1] && ind !== letters[i + 1].ind) {\n\t\t\t\t\tcurrentLength += letters[i].an / 2;\n\t\t\t\t\tcurrentLength += (documentData.tr * 0.001) * documentData.finalSize;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmatrixHelper.translate(xPos, yPos, 0);\n\n\t\t\t\tif (documentData.ps) {\n\t\t\t\t\t// matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n\t\t\t\t\tmatrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n\t\t\t\t}\n\t\t\t\tswitch (documentData.j) {\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\tmatrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 2:\n\t\t\t\t\t\tmatrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tmatrixHelper.translate(0, -documentData.ls);\n\t\t\t\tmatrixHelper.translate(offf, 0, 0);\n\t\t\t\tmatrixHelper.translate((alignment[0] * letters[i].an) * 0.005, (alignment[1] * yOff) * 0.01, 0);\n\t\t\t\txPos += letters[i].l + (documentData.tr * 0.001) * documentData.finalSize;\n\t\t\t}\n\t\t\tif (renderType === 'html') {\n\t\t\t\tletterM = matrixHelper.toCSS();\n\t\t\t} else if (renderType === 'svg') {\n\t\t\t\tletterM = matrixHelper.to2dCSS();\n\t\t\t} else {\n\t\t\t\tletterP = [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\t\t\t}\n\t\t\tletterO = elemOpacity;\n\t\t}\n\n\t\tif (renderedLettersCount <= i) {\n\t\t\tletterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n\t\t\tthis.renderedLetters.push(letterValue);\n\t\t\trenderedLettersCount += 1;\n\t\t\tthis.lettersChangedFlag = true;\n\t\t} else {\n\t\t\tletterValue = this.renderedLetters[i];\n\t\t\tthis.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n\t\t}\n\t}\n};\n\nTextAnimatorProperty.prototype.getValue = function () {\n\tif (this._elem.globalData.frameId === this._frameId) {\n\t\treturn;\n\t}\n\tthis._frameId = this._elem.globalData.frameId;\n\tthis.iterateDynamicProperties();\n};\n\nTextAnimatorProperty.prototype.mHelper = new Matrix();\nTextAnimatorProperty.prototype.defaultPropsArray = [];\nextendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\nfunction ITextElement() {\n}\n\nITextElement.prototype.initElement = function (data, globalData, comp) {\n\tthis.lettersChangedFlag = true;\n\tthis.initFrame();\n\tthis.initBaseData(data, globalData, comp);\n\tthis.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n\tthis.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n\tthis.initTransform(data, globalData, comp);\n\tthis.initHierarchy();\n\tthis.initRenderable();\n\tthis.initRendererElement();\n\tthis.createContainerElements();\n\tthis.createRenderableComponents();\n\tthis.createContent();\n\tthis.hide();\n\tthis.textAnimator.searchProperties(this.dynamicProperties);\n};\n\nITextElement.prototype.prepareFrame = function (num) {\n\tthis._mdf = false;\n\tthis.prepareRenderableFrame(num);\n\tthis.prepareProperties(num, this.isInRange);\n\tif (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n\t\tthis.buildNewText();\n\t\tthis.textProperty._isFirstFrame = false;\n\t\tthis.textProperty._mdf = false;\n\t}\n};\n\nITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n\tvar j;\n\tvar jLen = shapes.length;\n\tvar pathNodes;\n\tvar shapeStr = '';\n\tfor (j = 0; j < jLen; j += 1) {\n\t\tif (shapes[j].ty === 'sh') {\n\t\t\tpathNodes = shapes[j].ks.k;\n\t\t\tshapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n\t\t}\n\t}\n\treturn shapeStr;\n};\n\nITextElement.prototype.updateDocumentData = function (newData, index) {\n\tthis.textProperty.updateDocumentData(newData, index);\n};\n\nITextElement.prototype.canResizeFont = function (_canResize) {\n\tthis.textProperty.canResizeFont(_canResize);\n};\n\nITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n\tthis.textProperty.setMinimumFontSize(_fontSize);\n};\n\nITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n\tif (documentData.ps) {\n\t\tmatrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n\t}\n\tmatrixHelper.translate(0, -documentData.ls, 0);\n\tswitch (documentData.j) {\n\t\tcase 1:\n\t\t\tmatrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tmatrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\tmatrixHelper.translate(xPos, yPos, 0);\n};\n\nITextElement.prototype.buildColor = function (colorData) {\n\treturn 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n};\n\nITextElement.prototype.emptyProp = new LetterProps();\n\nITextElement.prototype.destroy = function () {\n\n};\n\nvar emptyShapeData = {\n\tshapes: [],\n};\n\nfunction SVGTextLottieElement(data, globalData, comp) {\n\tthis.textSpans = [];\n\tthis.renderType = 'svg';\n\tthis.initElement(data, globalData, comp);\n}\n\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\nSVGTextLottieElement.prototype.createContent = function () {\n\tif (this.data.singleShape && !this.globalData.fontManager.chars) {\n\t\tthis.textContainer = createNS('text');\n\t}\n};\n\nSVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n\tvar i = 0;\n\tvar len = textArray.length;\n\tvar textContents = [];\n\tvar currentTextContent = '';\n\twhile (i < len) {\n\t\tif (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n\t\t\ttextContents.push(currentTextContent);\n\t\t\tcurrentTextContent = '';\n\t\t} else {\n\t\t\tcurrentTextContent += textArray[i];\n\t\t}\n\t\ti += 1;\n\t}\n\ttextContents.push(currentTextContent);\n\treturn textContents;\n};\n\nSVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n\t// data should probably be cloned to apply scale separately to each instance of a text on different layers\n\t// but since text internal content gets only rendered once and then it's never rerendered,\n\t// it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n\t// Avoiding cloning is preferred since cloning each character shape data is expensive\n\tif (data.shapes && data.shapes.length) {\n\t\tvar shape = data.shapes[0];\n\t\tif (shape.it) {\n\t\t\tvar shapeItem = shape.it[shape.it.length - 1];\n\t\t\tif (shapeItem.s) {\n\t\t\t\tshapeItem.s.k[0] = scale;\n\t\t\t\tshapeItem.s.k[1] = scale;\n\t\t\t}\n\t\t}\n\t}\n\treturn data;\n};\n\nSVGTextLottieElement.prototype.buildNewText = function () {\n\tthis.addDynamicProperty(this);\n\tvar i;\n\tvar len;\n\n\tvar documentData = this.textProperty.currentData;\n\tthis.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\tif (documentData.fc) {\n\t\tthis.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n\t} else {\n\t\tthis.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n\t}\n\tif (documentData.sc) {\n\t\tthis.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n\t\tthis.layerElement.setAttribute('stroke-width', documentData.sw);\n\t}\n\tthis.layerElement.setAttribute('font-size', documentData.finalSize);\n\tvar fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\tif (fontData.fClass) {\n\t\tthis.layerElement.setAttribute('class', fontData.fClass);\n\t} else {\n\t\tthis.layerElement.setAttribute('font-family', fontData.fFamily);\n\t\tvar fWeight = documentData.fWeight;\n\t\tvar fStyle = documentData.fStyle;\n\t\tthis.layerElement.setAttribute('font-style', fStyle);\n\t\tthis.layerElement.setAttribute('font-weight', fWeight);\n\t}\n\tthis.layerElement.setAttribute('aria-label', documentData.t);\n\n\tvar letters = documentData.l || [];\n\tvar usesGlyphs = !!this.globalData.fontManager.chars;\n\tlen = letters.length;\n\n\tvar tSpan;\n\tvar matrixHelper = this.mHelper;\n\tvar shapeStr = '';\n\tvar singleShape = this.data.singleShape;\n\tvar xPos = 0;\n\tvar yPos = 0;\n\tvar firstLine = true;\n\tvar trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\tif (singleShape && !usesGlyphs && !documentData.sz) {\n\t\tvar tElement = this.textContainer;\n\t\tvar justify = 'start';\n\t\tswitch (documentData.j) {\n\t\t\tcase 1:\n\t\t\t\tjustify = 'end';\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tjustify = 'middle';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tjustify = 'start';\n\t\t\t\tbreak;\n\t\t}\n\t\ttElement.setAttribute('text-anchor', justify);\n\t\ttElement.setAttribute('letter-spacing', trackingOffset);\n\t\tvar textContent = this.buildTextContents(documentData.finalText);\n\t\tlen = textContent.length;\n\t\tyPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\ttSpan = this.textSpans[i].span || createNS('tspan');\n\t\t\ttSpan.textContent = textContent[i];\n\t\t\ttSpan.setAttribute('x', 0);\n\t\t\ttSpan.setAttribute('y', yPos);\n\t\t\ttSpan.style.display = 'inherit';\n\t\t\ttElement.appendChild(tSpan);\n\t\t\tif (!this.textSpans[i]) {\n\t\t\t\tthis.textSpans[i] = {\n\t\t\t\t\tspan: null,\n\t\t\t\t\tglyph: null,\n\t\t\t\t};\n\t\t\t}\n\t\t\tthis.textSpans[i].span = tSpan;\n\t\t\tyPos += documentData.finalLineHeight;\n\t\t}\n\n\t\tthis.layerElement.appendChild(tElement);\n\t} else {\n\t\tvar cachedSpansLength = this.textSpans.length;\n\t\tvar charData;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (!this.textSpans[i]) {\n\t\t\t\tthis.textSpans[i] = {\n\t\t\t\t\tspan: null,\n\t\t\t\t\tchildSpan: null,\n\t\t\t\t\tglyph: null,\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (!usesGlyphs || !singleShape || i === 0) {\n\t\t\t\ttSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\t\t\t\tif (cachedSpansLength <= i) {\n\t\t\t\t\ttSpan.setAttribute('stroke-linecap', 'butt');\n\t\t\t\t\ttSpan.setAttribute('stroke-linejoin', 'round');\n\t\t\t\t\ttSpan.setAttribute('stroke-miterlimit', '4');\n\t\t\t\t\tthis.textSpans[i].span = tSpan;\n\t\t\t\t\tif (usesGlyphs) {\n\t\t\t\t\t\tvar childSpan = createNS('g');\n\t\t\t\t\t\ttSpan.appendChild(childSpan);\n\t\t\t\t\t\tthis.textSpans[i].childSpan = childSpan;\n\t\t\t\t\t}\n\t\t\t\t\tthis.textSpans[i].span = tSpan;\n\t\t\t\t\tthis.layerElement.appendChild(tSpan);\n\t\t\t\t}\n\t\t\t\ttSpan.style.display = 'inherit';\n\t\t\t}\n\n\t\t\tmatrixHelper.reset();\n\t\t\tif (singleShape) {\n\t\t\t\tif (letters[i].n) {\n\t\t\t\t\txPos = -trackingOffset;\n\t\t\t\t\tyPos += documentData.yOffset;\n\t\t\t\t\tyPos += firstLine ? 1 : 0;\n\t\t\t\t\tfirstLine = false;\n\t\t\t\t}\n\t\t\t\tthis.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n\t\t\t\txPos += letters[i].l || 0;\n\t\t\t\t// xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\t\t\t\txPos += trackingOffset;\n\t\t\t}\n\t\t\tif (usesGlyphs) {\n\t\t\t\tcharData = this.globalData.fontManager.getCharData(\n\t\t\t\t\tdocumentData.finalText[i],\n\t\t\t\t\tfontData.fStyle,\n\t\t\t\t\tthis.globalData.fontManager.getFontByName(documentData.f).fFamily\n\t\t\t\t);\n\t\t\t\tvar glyphElement;\n\t\t\t\t// t === 1 means the character has been replaced with an animated shaped\n\t\t\t\tif (charData.t === 1) {\n\t\t\t\t\tglyphElement = new SVGCompElement(charData.data, this.globalData, this);\n\t\t\t\t} else {\n\t\t\t\t\tvar data = emptyShapeData;\n\t\t\t\t\tif (charData.data && charData.data.shapes) {\n\t\t\t\t\t\tdata = this.buildShapeData(charData.data, documentData.finalSize);\n\t\t\t\t\t}\n\t\t\t\t\tglyphElement = new SVGShapeElement(data, this.globalData, this);\n\t\t\t\t}\n\t\t\t\tif (this.textSpans[i].glyph) {\n\t\t\t\t\tvar glyph = this.textSpans[i].glyph;\n\t\t\t\t\tthis.textSpans[i].childSpan.removeChild(glyph.layerElement);\n\t\t\t\t\tglyph.destroy();\n\t\t\t\t}\n\t\t\t\tthis.textSpans[i].glyph = glyphElement;\n\t\t\t\tglyphElement._debug = true;\n\t\t\t\tglyphElement.prepareFrame(0);\n\t\t\t\tglyphElement.renderFrame();\n\t\t\t\tthis.textSpans[i].childSpan.appendChild(glyphElement.layerElement);\n\t\t\t\t// when using animated shapes, the layer will be scaled instead of replacing the internal scale\n\t\t\t\t// this might have issues with strokes and might need a different solution\n\t\t\t\tif (charData.t === 1) {\n\t\t\t\t\tthis.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (singleShape) {\n\t\t\t\t\ttSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n\t\t\t\t}\n\t\t\t\ttSpan.textContent = letters[i].val;\n\t\t\t\ttSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\t\t\t}\n\t\t\t//\n\t\t}\n\t\tif (singleShape && tSpan) {\n\t\t\ttSpan.setAttribute('d', shapeStr);\n\t\t}\n\t}\n\twhile (i < this.textSpans.length) {\n\t\tthis.textSpans[i].span.style.display = 'none';\n\t\ti += 1;\n\t}\n\n\tthis._sizeChanged = true;\n};\n\nSVGTextLottieElement.prototype.sourceRectAtTime = function () {\n\tthis.prepareFrame(this.comp.renderedFrame - this.data.st);\n\tthis.renderInnerContent();\n\tif (this._sizeChanged) {\n\t\tthis._sizeChanged = false;\n\t\tvar textBox = this.layerElement.getBBox();\n\t\tthis.bbox = {\n\t\t\ttop: textBox.y,\n\t\t\tleft: textBox.x,\n\t\t\twidth: textBox.width,\n\t\t\theight: textBox.height,\n\t\t};\n\t}\n\treturn this.bbox;\n};\n\nSVGTextLottieElement.prototype.getValue = function () {\n\tvar i;\n\tvar len = this.textSpans.length;\n\tvar glyphElement;\n\tthis.renderedFrame = this.comp.renderedFrame;\n\tfor (i = 0; i < len; i += 1) {\n\t\tglyphElement = this.textSpans[i].glyph;\n\t\tif (glyphElement) {\n\t\t\tglyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\t\t\tif (glyphElement._mdf) {\n\t\t\t\tthis._mdf = true;\n\t\t\t}\n\t\t}\n\t}\n};\n\nSVGTextLottieElement.prototype.renderInnerContent = function () {\n\tif (!this.data.singleShape || this._mdf) {\n\t\tthis.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\t\tif (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n\t\t\tthis._sizeChanged = true;\n\t\t\tvar i;\n\t\t\tvar len;\n\t\t\tvar renderedLetters = this.textAnimator.renderedLetters;\n\n\t\t\tvar letters = this.textProperty.currentData.l;\n\n\t\t\tlen = letters.length;\n\t\t\tvar renderedLetter;\n\t\t\tvar textSpan;\n\t\t\tvar glyphElement;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tif (!letters[i].n) {\n\t\t\t\t\trenderedLetter = renderedLetters[i];\n\t\t\t\t\ttextSpan = this.textSpans[i].span;\n\t\t\t\t\tglyphElement = this.textSpans[i].glyph;\n\t\t\t\t\tif (glyphElement) {\n\t\t\t\t\t\tglyphElement.renderFrame();\n\t\t\t\t\t}\n\t\t\t\t\tif (renderedLetter._mdf.m) {\n\t\t\t\t\t\ttextSpan.setAttribute('transform', renderedLetter.m);\n\t\t\t\t\t}\n\t\t\t\t\tif (renderedLetter._mdf.o) {\n\t\t\t\t\t\ttextSpan.setAttribute('opacity', renderedLetter.o);\n\t\t\t\t\t}\n\t\t\t\t\tif (renderedLetter._mdf.sw) {\n\t\t\t\t\t\ttextSpan.setAttribute('stroke-width', renderedLetter.sw);\n\t\t\t\t\t}\n\t\t\t\t\tif (renderedLetter._mdf.sc) {\n\t\t\t\t\t\ttextSpan.setAttribute('stroke', renderedLetter.sc);\n\t\t\t\t\t}\n\t\t\t\t\tif (renderedLetter._mdf.fc) {\n\t\t\t\t\t\ttextSpan.setAttribute('fill', renderedLetter.fc);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nfunction ISolidElement(data, globalData, comp) {\n\tthis.initElement(data, globalData, comp);\n}\nextendPrototype([IImageElement], ISolidElement);\n\nISolidElement.prototype.createContent = function () {\n\tvar rect = createNS('rect');\n\t/// /rect.style.width = this.data.sw;\n\t/// /rect.style.height = this.data.sh;\n\t/// /rect.style.fill = this.data.sc;\n\trect.setAttribute('width', this.data.sw);\n\trect.setAttribute('height', this.data.sh);\n\trect.setAttribute('fill', this.data.sc);\n\tthis.layerElement.appendChild(rect);\n};\n\nfunction NullElement(data, globalData, comp) {\n\tthis.initFrame();\n\tthis.initBaseData(data, globalData, comp);\n\tthis.initFrame();\n\tthis.initTransform(data, globalData, comp);\n\tthis.initHierarchy();\n}\n\nNullElement.prototype.prepareFrame = function (num) {\n\tthis.prepareProperties(num, true);\n};\n\nNullElement.prototype.renderFrame = function () {\n};\n\nNullElement.prototype.getBaseElement = function () {\n\treturn null;\n};\n\nNullElement.prototype.destroy = function () {\n};\n\nNullElement.prototype.sourceRectAtTime = function () {\n};\n\nNullElement.prototype.hide = function () {\n};\n\nextendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\nfunction SVGRendererBase() {\n}\n\nextendPrototype([BaseRenderer], SVGRendererBase);\n\nSVGRendererBase.prototype.createNull = function (data) {\n\treturn new NullElement(data, this.globalData, this);\n};\n\nSVGRendererBase.prototype.createShape = function (data) {\n\treturn new SVGShapeElement(data, this.globalData, this);\n};\n\nSVGRendererBase.prototype.createText = function (data) {\n\treturn new SVGTextLottieElement(data, this.globalData, this);\n};\n\nSVGRendererBase.prototype.createImage = function (data) {\n\treturn new IImageElement(data, this.globalData, this);\n};\n\nSVGRendererBase.prototype.createSolid = function (data) {\n\treturn new ISolidElement(data, this.globalData, this);\n};\n\nSVGRendererBase.prototype.configAnimation = function (animData) {\n\tthis.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\tif (this.renderConfig.viewBoxSize) {\n\t\tthis.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n\t} else {\n\t\tthis.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n\t}\n\n\tif (!this.renderConfig.viewBoxOnly) {\n\t\tthis.svgElement.setAttribute('width', animData.w);\n\t\tthis.svgElement.setAttribute('height', animData.h);\n\t\tthis.svgElement.style.width = '100%';\n\t\tthis.svgElement.style.height = '100%';\n\t\tthis.svgElement.style.transform = 'translate3d(0,0,0)';\n\t\tthis.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n\t}\n\tif (this.renderConfig.width) {\n\t\tthis.svgElement.setAttribute('width', this.renderConfig.width);\n\t}\n\tif (this.renderConfig.height) {\n\t\tthis.svgElement.setAttribute('height', this.renderConfig.height);\n\t}\n\tif (this.renderConfig.className) {\n\t\tthis.svgElement.setAttribute('class', this.renderConfig.className);\n\t}\n\tif (this.renderConfig.id) {\n\t\tthis.svgElement.setAttribute('id', this.renderConfig.id);\n\t}\n\tif (this.renderConfig.focusable !== undefined) {\n\t\tthis.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n\t}\n\tthis.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio);\n\t// this.layerElement.style.transform = 'translate3d(0,0,0)';\n\t// this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\tthis.animationItem.wrapper.appendChild(this.svgElement);\n\t// Mask animation\n\tvar defs = this.globalData.defs;\n\n\tthis.setupGlobalData(animData, defs);\n\tthis.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n\tthis.data = animData;\n\n\tvar maskElement = createNS('clipPath');\n\tvar rect = createNS('rect');\n\trect.setAttribute('width', animData.w);\n\trect.setAttribute('height', animData.h);\n\trect.setAttribute('x', 0);\n\trect.setAttribute('y', 0);\n\tvar maskId = createElementID();\n\tmaskElement.setAttribute('id', maskId);\n\tmaskElement.appendChild(rect);\n\tthis.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n\n\tdefs.appendChild(maskElement);\n\tthis.layers = animData.layers;\n\tthis.elements = createSizedArray(animData.layers.length);\n};\n\nSVGRendererBase.prototype.destroy = function () {\n\tif (this.animationItem.wrapper) {\n\t\tthis.animationItem.wrapper.innerText = '';\n\t}\n\tthis.layerElement = null;\n\tthis.globalData.defs = null;\n\tvar i;\n\tvar len = this.layers ? this.layers.length : 0;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.elements[i]) {\n\t\t\tthis.elements[i].destroy();\n\t\t}\n\t}\n\tthis.elements.length = 0;\n\tthis.destroyed = true;\n\tthis.animationItem = null;\n};\n\nSVGRendererBase.prototype.updateContainerSize = function () {\n};\n\nSVGRendererBase.prototype.buildItem = function (pos) {\n\tvar elements = this.elements;\n\tif (elements[pos] || this.layers[pos].ty === 99) {\n\t\treturn;\n\t}\n\telements[pos] = true;\n\tvar element = this.createItem(this.layers[pos]);\n\n\telements[pos] = element;\n\tif (getExpressionsPlugin()) {\n\t\tif (this.layers[pos].ty === 0) {\n\t\t\tthis.globalData.projectInterface.registerComposition(element);\n\t\t}\n\t\telement.initExpressions();\n\t}\n\tthis.appendElementInPos(element, pos);\n\tif (this.layers[pos].tt) {\n\t\tif (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\n\t\t\tthis.buildItem(pos - 1);\n\t\t\tthis.addPendingElement(element);\n\t\t} else {\n\t\t\telement.setMatte(elements[pos - 1].layerId);\n\t\t}\n\t}\n};\n\nSVGRendererBase.prototype.checkPendingElements = function () {\n\twhile (this.pendingElements.length) {\n\t\tvar element = this.pendingElements.pop();\n\t\telement.checkParenting();\n\t\tif (element.data.tt) {\n\t\t\tvar i = 0;\n\t\t\tvar len = this.elements.length;\n\t\t\twhile (i < len) {\n\t\t\t\tif (this.elements[i] === element) {\n\t\t\t\t\telement.setMatte(this.elements[i - 1].layerId);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t}\n\t}\n};\n\nSVGRendererBase.prototype.renderFrame = function (num) {\n\tif (this.renderedFrame === num || this.destroyed) {\n\t\treturn;\n\t}\n\tif (num === null) {\n\t\tnum = this.renderedFrame;\n\t} else {\n\t\tthis.renderedFrame = num;\n\t}\n\t// console.log('-------');\n\t// console.log('FRAME ',num);\n\tthis.globalData.frameNum = num;\n\tthis.globalData.frameId += 1;\n\tthis.globalData.projectInterface.currentFrame = num;\n\tthis.globalData._mdf = false;\n\tvar i;\n\tvar len = this.layers.length;\n\tif (!this.completeLayers) {\n\t\tthis.checkLayers(num);\n\t}\n\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\tif (this.completeLayers || this.elements[i]) {\n\t\t\tthis.elements[i].prepareFrame(num - this.layers[i].st);\n\t\t}\n\t}\n\tif (this.globalData._mdf) {\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (this.completeLayers || this.elements[i]) {\n\t\t\t\tthis.elements[i].renderFrame();\n\t\t\t}\n\t\t}\n\t}\n};\n\nSVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n\tvar newElement = element.getBaseElement();\n\tif (!newElement) {\n\t\treturn;\n\t}\n\tvar i = 0;\n\tvar nextElement;\n\twhile (i < pos) {\n\t\tif (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n\t\t\tnextElement = this.elements[i].getBaseElement();\n\t\t}\n\t\ti += 1;\n\t}\n\tif (nextElement) {\n\t\tthis.layerElement.insertBefore(newElement, nextElement);\n\t} else {\n\t\tthis.layerElement.appendChild(newElement);\n\t}\n};\n\nSVGRendererBase.prototype.hide = function () {\n\tthis.layerElement.style.display = 'none';\n};\n\nSVGRendererBase.prototype.show = function () {\n\tthis.layerElement.style.display = 'block';\n};\n\nfunction ICompElement() {}\n\nextendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\nICompElement.prototype.initElement = function (data, globalData, comp) {\n\tthis.initFrame();\n\tthis.initBaseData(data, globalData, comp);\n\tthis.initTransform(data, globalData, comp);\n\tthis.initRenderable();\n\tthis.initHierarchy();\n\tthis.initRendererElement();\n\tthis.createContainerElements();\n\tthis.createRenderableComponents();\n\tif (this.data.xt || !globalData.progressiveLoad) {\n\t\tthis.buildAllItems();\n\t}\n\tthis.hide();\n};\n\n/* ICompElement.prototype.hide = function(){\n    if(!this.hidden){\n        this.hideElement();\n        var i,len = this.elements.length;\n        for( i = 0; i < len; i+=1 ){\n            if(this.elements[i]){\n                this.elements[i].hide();\n            }\n        }\n    }\n}; */\n\nICompElement.prototype.prepareFrame = function (num) {\n\tthis._mdf = false;\n\tthis.prepareRenderableFrame(num);\n\tthis.prepareProperties(num, this.isInRange);\n\tif (!this.isInRange && !this.data.xt) {\n\t\treturn;\n\t}\n\n\tif (!this.tm._placeholder) {\n\t\tvar timeRemapped = this.tm.v;\n\t\tif (timeRemapped === this.data.op) {\n\t\t\ttimeRemapped = this.data.op - 1;\n\t\t}\n\t\tthis.renderedFrame = timeRemapped;\n\t} else {\n\t\tthis.renderedFrame = num / this.data.sr;\n\t}\n\tvar i;\n\tvar len = this.elements.length;\n\tif (!this.completeLayers) {\n\t\tthis.checkLayers(this.renderedFrame);\n\t}\n\t// This iteration needs to be backwards because of how expressions connect between each other\n\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\tif (this.completeLayers || this.elements[i]) {\n\t\t\tthis.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\t\t\tif (this.elements[i]._mdf) {\n\t\t\t\tthis._mdf = true;\n\t\t\t}\n\t\t}\n\t}\n};\n\nICompElement.prototype.renderInnerContent = function () {\n\tvar i;\n\tvar len = this.layers.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.completeLayers || this.elements[i]) {\n\t\t\tthis.elements[i].renderFrame();\n\t\t}\n\t}\n};\n\nICompElement.prototype.setElements = function (elems) {\n\tthis.elements = elems;\n};\n\nICompElement.prototype.getElements = function () {\n\treturn this.elements;\n};\n\nICompElement.prototype.destroyElements = function () {\n\tvar i;\n\tvar len = this.layers.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.elements[i]) {\n\t\t\tthis.elements[i].destroy();\n\t\t}\n\t}\n};\n\nICompElement.prototype.destroy = function () {\n\tthis.destroyElements();\n\tthis.destroyBaseElement();\n};\n\nfunction SVGCompElement(data, globalData, comp) {\n\tthis.layers = data.layers;\n\tthis.supports3d = true;\n\tthis.completeLayers = false;\n\tthis.pendingElements = [];\n\tthis.elements = this.layers ? createSizedArray(this.layers.length) : [];\n\tthis.initElement(data, globalData, comp);\n\tthis.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\n}\n\nextendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\nSVGCompElement.prototype.createComp = function (data) {\n\treturn new SVGCompElement(data, this.globalData, this);\n};\n\nfunction SVGRenderer(animationItem, config) {\n\tthis.animationItem = animationItem;\n\tthis.layers = null;\n\tthis.renderedFrame = -1;\n\tthis.svgElement = createNS('svg');\n\tvar ariaLabel = '';\n\tif (config && config.title) {\n\t\tvar titleElement = createNS('title');\n\t\tvar titleId = createElementID();\n\t\ttitleElement.setAttribute('id', titleId);\n\t\ttitleElement.textContent = config.title;\n\t\tthis.svgElement.appendChild(titleElement);\n\t\tariaLabel += titleId;\n\t}\n\tif (config && config.description) {\n\t\tvar descElement = createNS('desc');\n\t\tvar descId = createElementID();\n\t\tdescElement.setAttribute('id', descId);\n\t\tdescElement.textContent = config.description;\n\t\tthis.svgElement.appendChild(descElement);\n\t\tariaLabel += ' ' + descId;\n\t}\n\tif (ariaLabel) {\n\t\tthis.svgElement.setAttribute('aria-labelledby', ariaLabel);\n\t}\n\tvar defs = createNS('defs');\n\tthis.svgElement.appendChild(defs);\n\tvar maskElement = createNS('g');\n\tthis.svgElement.appendChild(maskElement);\n\tthis.layerElement = maskElement;\n\tthis.renderConfig = {\n\t\tpreserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',\n\t\timagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\n\t\tcontentVisibility: (config && config.contentVisibility) || 'visible',\n\t\tprogressiveLoad: (config && config.progressiveLoad) || false,\n\t\thideOnTransparent: !((config && config.hideOnTransparent === false)),\n\t\tviewBoxOnly: (config && config.viewBoxOnly) || false,\n\t\tviewBoxSize: (config && config.viewBoxSize) || false,\n\t\tclassName: (config && config.className) || '',\n\t\tid: (config && config.id) || '',\n\t\tfocusable: config && config.focusable,\n\t\tfilterSize: {\n\t\t\twidth: (config && config.filterSize && config.filterSize.width) || '100%',\n\t\t\theight: (config && config.filterSize && config.filterSize.height) || '100%',\n\t\t\tx: (config && config.filterSize && config.filterSize.x) || '0%',\n\t\t\ty: (config && config.filterSize && config.filterSize.y) || '0%',\n\t\t},\n\t\twidth: (config && config.width),\n\t\theight: (config && config.height),\n\t};\n\n\tthis.globalData = {\n\t\t_mdf: false,\n\t\tframeNum: -1,\n\t\tdefs: defs,\n\t\trenderConfig: this.renderConfig,\n\t};\n\tthis.elements = [];\n\tthis.pendingElements = [];\n\tthis.destroyed = false;\n\tthis.rendererType = 'svg';\n}\n\nextendPrototype([SVGRendererBase], SVGRenderer);\n\nSVGRenderer.prototype.createComp = function (data) {\n\treturn new SVGCompElement(data, this.globalData, this);\n};\n\nfunction CVContextData() {\n\tthis.saved = [];\n\tthis.cArrPos = 0;\n\tthis.cTr = new Matrix();\n\tthis.cO = 1;\n\tvar i;\n\tvar len = 15;\n\tthis.savedOp = createTypedArray('float32', len);\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.saved[i] = createTypedArray('float32', 16);\n\t}\n\tthis._length = len;\n}\n\nCVContextData.prototype.duplicate = function () {\n\tvar newLength = this._length * 2;\n\tvar currentSavedOp = this.savedOp;\n\tthis.savedOp = createTypedArray('float32', newLength);\n\tthis.savedOp.set(currentSavedOp);\n\tvar i = 0;\n\tfor (i = this._length; i < newLength; i += 1) {\n\t\tthis.saved[i] = createTypedArray('float32', 16);\n\t}\n\tthis._length = newLength;\n};\n\nCVContextData.prototype.reset = function () {\n\tthis.cArrPos = 0;\n\tthis.cTr.reset();\n\tthis.cO = 1;\n};\n\nfunction ShapeTransformManager() {\n\tthis.sequences = {};\n\tthis.sequenceList = [];\n\tthis.transform_key_count = 0;\n}\n\nShapeTransformManager.prototype = {\n\taddTransformSequence: function (transforms) {\n\t\tvar i;\n\t\tvar len = transforms.length;\n\t\tvar key = '_';\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tkey += transforms[i].transform.key + '_';\n\t\t}\n\t\tvar sequence = this.sequences[key];\n\t\tif (!sequence) {\n\t\t\tsequence = {\n\t\t\t\ttransforms: [].concat(transforms),\n\t\t\t\tfinalTransform: new Matrix(),\n\t\t\t\t_mdf: false,\n\t\t\t};\n\t\t\tthis.sequences[key] = sequence;\n\t\t\tthis.sequenceList.push(sequence);\n\t\t}\n\t\treturn sequence;\n\t},\n\tprocessSequence: function (sequence, isFirstFrame) {\n\t\tvar i = 0;\n\t\tvar len = sequence.transforms.length;\n\t\tvar _mdf = isFirstFrame;\n\t\twhile (i < len && !isFirstFrame) {\n\t\t\tif (sequence.transforms[i].transform.mProps._mdf) {\n\t\t\t\t_mdf = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\tif (_mdf) {\n\t\t\tvar props;\n\t\t\tsequence.finalTransform.reset();\n\t\t\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\t\t\tprops = sequence.transforms[i].transform.mProps.v.props;\n\t\t\t\tsequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n\t\t\t}\n\t\t}\n\t\tsequence._mdf = _mdf;\n\t},\n\tprocessSequences: function (isFirstFrame) {\n\t\tvar i;\n\t\tvar len = this.sequenceList.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.processSequence(this.sequenceList[i], isFirstFrame);\n\t\t}\n\t},\n\tgetNewKey: function () {\n\t\tthis.transform_key_count += 1;\n\t\treturn '_' + this.transform_key_count;\n\t},\n};\n\nfunction CVEffects() {\n\n}\nCVEffects.prototype.renderFrame = function () {};\n\nfunction CVMaskElement(data, element) {\n\tthis.data = data;\n\tthis.element = element;\n\tthis.masksProperties = this.data.masksProperties || [];\n\tthis.viewData = createSizedArray(this.masksProperties.length);\n\tvar i;\n\tvar len = this.masksProperties.length;\n\tvar hasMasks = false;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.masksProperties[i].mode !== 'n') {\n\t\t\thasMasks = true;\n\t\t}\n\t\tthis.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n\t}\n\tthis.hasMasks = hasMasks;\n\tif (hasMasks) {\n\t\tthis.element.addRenderableComponent(this);\n\t}\n}\n\nCVMaskElement.prototype.renderFrame = function () {\n\tif (!this.hasMasks) {\n\t\treturn;\n\t}\n\tvar transform = this.element.finalTransform.mat;\n\tvar ctx = this.element.canvasContext;\n\tvar i;\n\tvar len = this.masksProperties.length;\n\tvar pt;\n\tvar pts;\n\tvar data;\n\tctx.beginPath();\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.masksProperties[i].mode !== 'n') {\n\t\t\tif (this.masksProperties[i].inv) {\n\t\t\t\tctx.moveTo(0, 0);\n\t\t\t\tctx.lineTo(this.element.globalData.compSize.w, 0);\n\t\t\t\tctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n\t\t\t\tctx.lineTo(0, this.element.globalData.compSize.h);\n\t\t\t\tctx.lineTo(0, 0);\n\t\t\t}\n\t\t\tdata = this.viewData[i].v;\n\t\t\tpt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n\t\t\tctx.moveTo(pt[0], pt[1]);\n\t\t\tvar j;\n\t\t\tvar jLen = data._length;\n\t\t\tfor (j = 1; j < jLen; j += 1) {\n\t\t\t\tpts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n\t\t\t\tctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n\t\t\t}\n\t\t\tpts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n\t\t\tctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n\t\t}\n\t}\n\tthis.element.globalData.renderer.save(true);\n\tctx.clip();\n};\n\nCVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\nCVMaskElement.prototype.destroy = function () {\n\tthis.element = null;\n};\n\nfunction CVBaseElement() {\n}\n\nCVBaseElement.prototype = {\n\tcreateElements: function () {},\n\tinitRendererElement: function () {},\n\tcreateContainerElements: function () {\n\t\tthis.canvasContext = this.globalData.canvasContext;\n\t\tthis.renderableEffectsManager = new CVEffects(this);\n\t},\n\tcreateContent: function () {},\n\tsetBlendMode: function () {\n\t\tvar globalData = this.globalData;\n\t\tif (globalData.blendMode !== this.data.bm) {\n\t\t\tglobalData.blendMode = this.data.bm;\n\t\t\tvar blendModeValue = getBlendMode(this.data.bm);\n\t\t\tglobalData.canvasContext.globalCompositeOperation = blendModeValue;\n\t\t}\n\t},\n\tcreateRenderableComponents: function () {\n\t\tthis.maskManager = new CVMaskElement(this.data, this);\n\t},\n\thideElement: function () {\n\t\tif (!this.hidden && (!this.isInRange || this.isTransparent)) {\n\t\t\tthis.hidden = true;\n\t\t}\n\t},\n\tshowElement: function () {\n\t\tif (this.isInRange && !this.isTransparent) {\n\t\t\tthis.hidden = false;\n\t\t\tthis._isFirstFrame = true;\n\t\t\tthis.maskManager._isFirstFrame = true;\n\t\t}\n\t},\n\trenderFrame: function () {\n\t\tif (this.hidden || this.data.hd) {\n\t\t\treturn;\n\t\t}\n\t\tthis.renderTransform();\n\t\tthis.renderRenderable();\n\t\tthis.setBlendMode();\n\t\tvar forceRealStack = this.data.ty === 0;\n\t\tthis.globalData.renderer.save(forceRealStack);\n\t\tthis.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\n\t\tthis.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\n\t\tthis.renderInnerContent();\n\t\tthis.globalData.renderer.restore(forceRealStack);\n\t\tif (this.maskManager.hasMasks) {\n\t\t\tthis.globalData.renderer.restore(true);\n\t\t}\n\t\tif (this._isFirstFrame) {\n\t\t\tthis._isFirstFrame = false;\n\t\t}\n\t},\n\tdestroy: function () {\n\t\tthis.canvasContext = null;\n\t\tthis.data = null;\n\t\tthis.globalData = null;\n\t\tthis.maskManager.destroy();\n\t},\n\tmHelper: new Matrix(),\n};\nCVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\nCVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\nfunction CVShapeData(element, data, styles, transformsManager) {\n\tthis.styledShapes = [];\n\tthis.tr = [0, 0, 0, 0, 0, 0];\n\tvar ty = 4;\n\tif (data.ty === 'rc') {\n\t\tty = 5;\n\t} else if (data.ty === 'el') {\n\t\tty = 6;\n\t} else if (data.ty === 'sr') {\n\t\tty = 7;\n\t}\n\tthis.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n\tvar i;\n\tvar len = styles.length;\n\tvar styledShape;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (!styles[i].closed) {\n\t\t\tstyledShape = {\n\t\t\t\ttransforms: transformsManager.addTransformSequence(styles[i].transforms),\n\t\t\t\ttrNodes: [],\n\t\t\t};\n\t\t\tthis.styledShapes.push(styledShape);\n\t\t\tstyles[i].elements.push(styledShape);\n\t\t}\n\t}\n}\n\nCVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\nfunction CVShapeElement(data, globalData, comp) {\n\tthis.shapes = [];\n\tthis.shapesData = data.shapes;\n\tthis.stylesList = [];\n\tthis.itemsData = [];\n\tthis.prevViewData = [];\n\tthis.shapeModifiers = [];\n\tthis.processedElements = [];\n\tthis.transformsManager = new ShapeTransformManager();\n\tthis.initElement(data, globalData, comp);\n}\n\nextendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n\nCVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n\nCVShapeElement.prototype.transformHelper = { opacity: 1, _opMdf: false };\n\nCVShapeElement.prototype.dashResetter = [];\n\nCVShapeElement.prototype.createContent = function () {\n\tthis.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n};\n\nCVShapeElement.prototype.createStyleElement = function (data, transforms) {\n\tvar styleElem = {\n\t\tdata: data,\n\t\ttype: data.ty,\n\t\tpreTransforms: this.transformsManager.addTransformSequence(transforms),\n\t\ttransforms: [],\n\t\telements: [],\n\t\tclosed: data.hd === true,\n\t};\n\tvar elementData = {};\n\tif (data.ty === 'fl' || data.ty === 'st') {\n\t\telementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\t\tif (!elementData.c.k) {\n\t\t\tstyleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n\t\t}\n\t} else if (data.ty === 'gf' || data.ty === 'gs') {\n\t\telementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n\t\telementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n\t\telementData.h = PropertyFactory.getProp(this, data.h || { k: 0 }, 0, 0.01, this);\n\t\telementData.a = PropertyFactory.getProp(this, data.a || { k: 0 }, 0, degToRads, this);\n\t\telementData.g = new GradientProperty(this, data.g, this);\n\t}\n\telementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\tif (data.ty === 'st' || data.ty === 'gs') {\n\t\tstyleElem.lc = lineCapEnum[data.lc || 2];\n\t\tstyleElem.lj = lineJoinEnum[data.lj || 2];\n\t\tif (data.lj == 1) { // eslint-disable-line eqeqeq\n\t\t\tstyleElem.ml = data.ml;\n\t\t}\n\t\telementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\t\tif (!elementData.w.k) {\n\t\t\tstyleElem.wi = elementData.w.v;\n\t\t}\n\t\tif (data.d) {\n\t\t\tvar d = new DashProperty(this, data.d, 'canvas', this);\n\t\t\telementData.d = d;\n\t\t\tif (!elementData.d.k) {\n\t\t\t\tstyleElem.da = elementData.d.dashArray;\n\t\t\t\tstyleElem.do = elementData.d.dashoffset[0];\n\t\t\t}\n\t\t}\n\t} else {\n\t\tstyleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n\t}\n\tthis.stylesList.push(styleElem);\n\telementData.style = styleElem;\n\treturn elementData;\n};\n\nCVShapeElement.prototype.createGroupElement = function () {\n\tvar elementData = {\n\t\tit: [],\n\t\tprevViewData: [],\n\t};\n\treturn elementData;\n};\n\nCVShapeElement.prototype.createTransformElement = function (data) {\n\tvar elementData = {\n\t\ttransform: {\n\t\t\topacity: 1,\n\t\t\t_opMdf: false,\n\t\t\tkey: this.transformsManager.getNewKey(),\n\t\t\top: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n\t\t\tmProps: TransformPropertyFactory.getTransformProperty(this, data, this),\n\t\t},\n\t};\n\treturn elementData;\n};\n\nCVShapeElement.prototype.createShapeElement = function (data) {\n\tvar elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n\n\tthis.shapes.push(elementData);\n\tthis.addShapeToModifiers(elementData);\n\treturn elementData;\n};\n\nCVShapeElement.prototype.reloadShapes = function () {\n\tthis._isFirstFrame = true;\n\tvar i;\n\tvar len = this.itemsData.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.prevViewData[i] = this.itemsData[i];\n\t}\n\tthis.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n\tlen = this.dynamicProperties.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.dynamicProperties[i].getValue();\n\t}\n\tthis.renderModifiers();\n\tthis.transformsManager.processSequences(this._isFirstFrame);\n};\n\nCVShapeElement.prototype.addTransformToStyleList = function (transform) {\n\tvar i;\n\tvar len = this.stylesList.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (!this.stylesList[i].closed) {\n\t\t\tthis.stylesList[i].transforms.push(transform);\n\t\t}\n\t}\n};\n\nCVShapeElement.prototype.removeTransformFromStyleList = function () {\n\tvar i;\n\tvar len = this.stylesList.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (!this.stylesList[i].closed) {\n\t\t\tthis.stylesList[i].transforms.pop();\n\t\t}\n\t}\n};\n\nCVShapeElement.prototype.closeStyles = function (styles) {\n\tvar i;\n\tvar len = styles.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tstyles[i].closed = true;\n\t}\n};\n\nCVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n\tvar i;\n\tvar len = arr.length - 1;\n\tvar j;\n\tvar jLen;\n\tvar ownStyles = [];\n\tvar ownModifiers = [];\n\tvar processedPos;\n\tvar modifier;\n\tvar currentTransform;\n\tvar ownTransforms = [].concat(transforms);\n\tfor (i = len; i >= 0; i -= 1) {\n\t\tprocessedPos = this.searchProcessedElement(arr[i]);\n\t\tif (!processedPos) {\n\t\t\tarr[i]._shouldRender = shouldRender;\n\t\t} else {\n\t\t\titemsData[i] = prevViewData[processedPos - 1];\n\t\t}\n\t\tif (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n\t\t\tif (!processedPos) {\n\t\t\t\titemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n\t\t\t} else {\n\t\t\t\titemsData[i].style.closed = false;\n\t\t\t}\n\n\t\t\townStyles.push(itemsData[i].style);\n\t\t} else if (arr[i].ty === 'gr') {\n\t\t\tif (!processedPos) {\n\t\t\t\titemsData[i] = this.createGroupElement(arr[i]);\n\t\t\t} else {\n\t\t\t\tjLen = itemsData[i].it.length;\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\titemsData[i].prevViewData[j] = itemsData[i].it[j];\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n\t\t} else if (arr[i].ty === 'tr') {\n\t\t\tif (!processedPos) {\n\t\t\t\tcurrentTransform = this.createTransformElement(arr[i]);\n\t\t\t\titemsData[i] = currentTransform;\n\t\t\t}\n\t\t\townTransforms.push(itemsData[i]);\n\t\t\tthis.addTransformToStyleList(itemsData[i]);\n\t\t} else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n\t\t\tif (!processedPos) {\n\t\t\t\titemsData[i] = this.createShapeElement(arr[i]);\n\t\t\t}\n\t\t} else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb') {\n\t\t\tif (!processedPos) {\n\t\t\t\tmodifier = ShapeModifiers.getModifier(arr[i].ty);\n\t\t\t\tmodifier.init(this, arr[i]);\n\t\t\t\titemsData[i] = modifier;\n\t\t\t\tthis.shapeModifiers.push(modifier);\n\t\t\t} else {\n\t\t\t\tmodifier = itemsData[i];\n\t\t\t\tmodifier.closed = false;\n\t\t\t}\n\t\t\townModifiers.push(modifier);\n\t\t} else if (arr[i].ty === 'rp') {\n\t\t\tif (!processedPos) {\n\t\t\t\tmodifier = ShapeModifiers.getModifier(arr[i].ty);\n\t\t\t\titemsData[i] = modifier;\n\t\t\t\tmodifier.init(this, arr, i, itemsData);\n\t\t\t\tthis.shapeModifiers.push(modifier);\n\t\t\t\tshouldRender = false;\n\t\t\t} else {\n\t\t\t\tmodifier = itemsData[i];\n\t\t\t\tmodifier.closed = true;\n\t\t\t}\n\t\t\townModifiers.push(modifier);\n\t\t}\n\t\tthis.addProcessedElement(arr[i], i + 1);\n\t}\n\tthis.removeTransformFromStyleList();\n\tthis.closeStyles(ownStyles);\n\tlen = ownModifiers.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\townModifiers[i].closed = true;\n\t}\n};\n\nCVShapeElement.prototype.renderInnerContent = function () {\n\tthis.transformHelper.opacity = 1;\n\tthis.transformHelper._opMdf = false;\n\tthis.renderModifiers();\n\tthis.transformsManager.processSequences(this._isFirstFrame);\n\tthis.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n};\n\nCVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n\tif (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n\t\tgroupTransform.opacity = parentTransform.opacity;\n\t\tgroupTransform.opacity *= groupTransform.op.v;\n\t\tgroupTransform._opMdf = true;\n\t}\n};\n\nCVShapeElement.prototype.drawLayer = function () {\n\tvar i;\n\tvar len = this.stylesList.length;\n\tvar j;\n\tvar jLen;\n\tvar k;\n\tvar kLen;\n\tvar elems;\n\tvar nodes;\n\tvar renderer = this.globalData.renderer;\n\tvar ctx = this.globalData.canvasContext;\n\tvar type;\n\tvar currentStyle;\n\tfor (i = 0; i < len; i += 1) {\n\t\tcurrentStyle = this.stylesList[i];\n\t\ttype = currentStyle.type;\n\n\t\t// Skipping style when\n\t\t// Stroke width equals 0\n\t\t// style should not be rendered (extra unused repeaters)\n\t\t// current opacity equals 0\n\t\t// global opacity equals 0\n\t\tif (!(((type === 'st' || type === 'gs') && currentStyle.wi === 0) || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n\t\t\trenderer.save();\n\t\t\telems = currentStyle.elements;\n\t\t\tif (type === 'st' || type === 'gs') {\n\t\t\t\tctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\t\t\t\tctx.lineWidth = currentStyle.wi;\n\t\t\t\tctx.lineCap = currentStyle.lc;\n\t\t\t\tctx.lineJoin = currentStyle.lj;\n\t\t\t\tctx.miterLimit = currentStyle.ml || 0;\n\t\t\t} else {\n\t\t\t\tctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n\t\t\t}\n\t\t\trenderer.ctxOpacity(currentStyle.coOp);\n\t\t\tif (type !== 'st' && type !== 'gs') {\n\t\t\t\tctx.beginPath();\n\t\t\t}\n\t\t\trenderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n\t\t\tjLen = elems.length;\n\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\tif (type === 'st' || type === 'gs') {\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tif (currentStyle.da) {\n\t\t\t\t\t\tctx.setLineDash(currentStyle.da);\n\t\t\t\t\t\tctx.lineDashOffset = currentStyle.do;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tnodes = elems[j].trNodes;\n\t\t\t\tkLen = nodes.length;\n\n\t\t\t\tfor (k = 0; k < kLen; k += 1) {\n\t\t\t\t\tif (nodes[k].t === 'm') {\n\t\t\t\t\t\tctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n\t\t\t\t\t} else if (nodes[k].t === 'c') {\n\t\t\t\t\t\tctx.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\t\t\t\t\t} else {\n\t\t\t\t\t\tctx.closePath();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (type === 'st' || type === 'gs') {\n\t\t\t\t\tctx.stroke();\n\t\t\t\t\tif (currentStyle.da) {\n\t\t\t\t\t\tctx.setLineDash(this.dashResetter);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (type !== 'st' && type !== 'gs') {\n\t\t\t\tctx.fill(currentStyle.r);\n\t\t\t}\n\t\t\trenderer.restore();\n\t\t}\n\t}\n};\n\nCVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n\tvar i;\n\tvar len = items.length - 1;\n\tvar groupTransform;\n\tgroupTransform = parentTransform;\n\tfor (i = len; i >= 0; i -= 1) {\n\t\tif (items[i].ty === 'tr') {\n\t\t\tgroupTransform = data[i].transform;\n\t\t\tthis.renderShapeTransform(parentTransform, groupTransform);\n\t\t} else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n\t\t\tthis.renderPath(items[i], data[i]);\n\t\t} else if (items[i].ty === 'fl') {\n\t\t\tthis.renderFill(items[i], data[i], groupTransform);\n\t\t} else if (items[i].ty === 'st') {\n\t\t\tthis.renderStroke(items[i], data[i], groupTransform);\n\t\t} else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n\t\t\tthis.renderGradientFill(items[i], data[i], groupTransform);\n\t\t} else if (items[i].ty === 'gr') {\n\t\t\tthis.renderShape(groupTransform, items[i].it, data[i].it);\n\t\t} else if (items[i].ty === 'tm') {\n\t\t\t//\n\t\t}\n\t}\n\tif (isMain) {\n\t\tthis.drawLayer();\n\t}\n};\n\nCVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n\tif (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n\t\tvar shapeNodes = styledShape.trNodes;\n\t\tvar paths = shape.paths;\n\t\tvar i;\n\t\tvar len;\n\t\tvar j;\n\t\tvar jLen = paths._length;\n\t\tshapeNodes.length = 0;\n\t\tvar groupTransformMat = styledShape.transforms.finalTransform;\n\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\tvar pathNodes = paths.shapes[j];\n\t\t\tif (pathNodes && pathNodes.v) {\n\t\t\t\tlen = pathNodes._length;\n\t\t\t\tfor (i = 1; i < len; i += 1) {\n\t\t\t\t\tif (i === 1) {\n\t\t\t\t\t\tshapeNodes.push({\n\t\t\t\t\t\t\tt: 'm',\n\t\t\t\t\t\t\tp: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tshapeNodes.push({\n\t\t\t\t\t\tt: 'c',\n\t\t\t\t\t\tpts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i]),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (len === 1) {\n\t\t\t\t\tshapeNodes.push({\n\t\t\t\t\t\tt: 'm',\n\t\t\t\t\t\tp: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (pathNodes.c && len) {\n\t\t\t\t\tshapeNodes.push({\n\t\t\t\t\t\tt: 'c',\n\t\t\t\t\t\tpts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0]),\n\t\t\t\t\t});\n\t\t\t\t\tshapeNodes.push({\n\t\t\t\t\t\tt: 'z',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tstyledShape.trNodes = shapeNodes;\n\t}\n};\n\nCVShapeElement.prototype.renderPath = function (pathData, itemData) {\n\tif (pathData.hd !== true && pathData._shouldRender) {\n\t\tvar i;\n\t\tvar len = itemData.styledShapes.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n\t\t}\n\t}\n};\n\nCVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n\tvar styleElem = itemData.style;\n\n\tif (itemData.c._mdf || this._isFirstFrame) {\n\t\tstyleElem.co = 'rgb('\n\t\t\t+ bmFloor(itemData.c.v[0]) + ','\n\t\t\t+ bmFloor(itemData.c.v[1]) + ','\n\t\t\t+ bmFloor(itemData.c.v[2]) + ')';\n\t}\n\tif (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n\t\tstyleElem.coOp = itemData.o.v * groupTransform.opacity;\n\t}\n};\n\nCVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n\tvar styleElem = itemData.style;\n\tvar grd;\n\tif (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || (styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf))) {\n\t\tvar ctx = this.globalData.canvasContext;\n\t\tvar pt1 = itemData.s.v;\n\t\tvar pt2 = itemData.e.v;\n\t\tif (styleData.t === 1) {\n\t\t\tgrd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n\t\t} else {\n\t\t\tvar rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n\t\t\tvar ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n\n\t\t\tvar percent = itemData.h.v;\n\t\t\tif (percent >= 1) {\n\t\t\t\tpercent = 0.99;\n\t\t\t} else if (percent <= -1) {\n\t\t\t\tpercent = -0.99;\n\t\t\t}\n\t\t\tvar dist = rad * percent;\n\t\t\tvar x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n\t\t\tvar y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n\t\t\tgrd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n\t\t}\n\n\t\tvar i;\n\t\tvar len = styleData.g.p;\n\t\tvar cValues = itemData.g.c;\n\t\tvar opacity = 1;\n\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (itemData.g._hasOpacity && itemData.g._collapsable) {\n\t\t\t\topacity = itemData.g.o[i * 2 + 1];\n\t\t\t}\n\t\t\tgrd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n\t\t}\n\t\tstyleElem.grd = grd;\n\t}\n\tstyleElem.coOp = itemData.o.v * groupTransform.opacity;\n};\n\nCVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n\tvar styleElem = itemData.style;\n\tvar d = itemData.d;\n\tif (d && (d._mdf || this._isFirstFrame)) {\n\t\tstyleElem.da = d.dashArray;\n\t\tstyleElem.do = d.dashoffset[0];\n\t}\n\tif (itemData.c._mdf || this._isFirstFrame) {\n\t\tstyleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n\t}\n\tif (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n\t\tstyleElem.coOp = itemData.o.v * groupTransform.opacity;\n\t}\n\tif (itemData.w._mdf || this._isFirstFrame) {\n\t\tstyleElem.wi = itemData.w.v;\n\t}\n};\n\nCVShapeElement.prototype.destroy = function () {\n\tthis.shapesData = null;\n\tthis.globalData = null;\n\tthis.canvasContext = null;\n\tthis.stylesList.length = 0;\n\tthis.itemsData.length = 0;\n};\n\nfunction CVTextElement(data, globalData, comp) {\n\tthis.textSpans = [];\n\tthis.yOffset = 0;\n\tthis.fillColorAnim = false;\n\tthis.strokeColorAnim = false;\n\tthis.strokeWidthAnim = false;\n\tthis.stroke = false;\n\tthis.fill = false;\n\tthis.justifyOffset = 0;\n\tthis.currentRender = null;\n\tthis.renderType = 'canvas';\n\tthis.values = {\n\t\tfill: 'rgba(0,0,0,0)',\n\t\tstroke: 'rgba(0,0,0,0)',\n\t\tsWidth: 0,\n\t\tfValue: '',\n\t};\n\tthis.initElement(data, globalData, comp);\n}\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n\nCVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\nCVTextElement.prototype.buildNewText = function () {\n\tvar documentData = this.textProperty.currentData;\n\tthis.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n\n\tvar hasFill = false;\n\tif (documentData.fc) {\n\t\thasFill = true;\n\t\tthis.values.fill = this.buildColor(documentData.fc);\n\t} else {\n\t\tthis.values.fill = 'rgba(0,0,0,0)';\n\t}\n\tthis.fill = hasFill;\n\tvar hasStroke = false;\n\tif (documentData.sc) {\n\t\thasStroke = true;\n\t\tthis.values.stroke = this.buildColor(documentData.sc);\n\t\tthis.values.sWidth = documentData.sw;\n\t}\n\tvar fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\tvar i;\n\tvar len;\n\tvar letters = documentData.l;\n\tvar matrixHelper = this.mHelper;\n\tthis.stroke = hasStroke;\n\tthis.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n\tlen = documentData.finalText.length;\n\t// this.tHelper.font = this.values.fValue;\n\tvar charData;\n\tvar shapeData;\n\tvar k;\n\tvar kLen;\n\tvar shapes;\n\tvar j;\n\tvar jLen;\n\tvar pathNodes;\n\tvar commands;\n\tvar pathArr;\n\tvar singleShape = this.data.singleShape;\n\tvar trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\tvar xPos = 0;\n\tvar yPos = 0;\n\tvar firstLine = true;\n\tvar cnt = 0;\n\tfor (i = 0; i < len; i += 1) {\n\t\tcharData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n\t\tshapeData = (charData && charData.data) || {};\n\t\tmatrixHelper.reset();\n\t\tif (singleShape && letters[i].n) {\n\t\t\txPos = -trackingOffset;\n\t\t\tyPos += documentData.yOffset;\n\t\t\tyPos += firstLine ? 1 : 0;\n\t\t\tfirstLine = false;\n\t\t}\n\t\tshapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n\t\tjLen = shapes.length;\n\t\tmatrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\t\tif (singleShape) {\n\t\t\tthis.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n\t\t}\n\t\tcommands = createSizedArray(jLen - 1);\n\t\tvar commandsCounter = 0;\n\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\tif (shapes[j].ty === 'sh') {\n\t\t\t\tkLen = shapes[j].ks.k.i.length;\n\t\t\t\tpathNodes = shapes[j].ks.k;\n\t\t\t\tpathArr = [];\n\t\t\t\tfor (k = 1; k < kLen; k += 1) {\n\t\t\t\t\tif (k === 1) {\n\t\t\t\t\t\tpathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n\t\t\t\t\t}\n\t\t\t\t\tpathArr.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\t\t\t\t}\n\t\t\t\tpathArr.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\t\t\t\tcommands[commandsCounter] = pathArr;\n\t\t\t\tcommandsCounter += 1;\n\t\t\t}\n\t\t}\n\t\tif (singleShape) {\n\t\t\txPos += letters[i].l;\n\t\t\txPos += trackingOffset;\n\t\t}\n\t\tif (this.textSpans[cnt]) {\n\t\t\tthis.textSpans[cnt].elem = commands;\n\t\t} else {\n\t\t\tthis.textSpans[cnt] = { elem: commands };\n\t\t}\n\t\tcnt += 1;\n\t}\n};\n\nCVTextElement.prototype.renderInnerContent = function () {\n\tvar ctx = this.canvasContext;\n\tctx.font = this.values.fValue;\n\tctx.lineCap = 'butt';\n\tctx.lineJoin = 'miter';\n\tctx.miterLimit = 4;\n\n\tif (!this.data.singleShape) {\n\t\tthis.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\t}\n\n\tvar i;\n\tvar len;\n\tvar j;\n\tvar jLen;\n\tvar k;\n\tvar kLen;\n\tvar renderedLetters = this.textAnimator.renderedLetters;\n\n\tvar letters = this.textProperty.currentData.l;\n\n\tlen = letters.length;\n\tvar renderedLetter;\n\tvar lastFill = null;\n\tvar lastStroke = null;\n\tvar lastStrokeW = null;\n\tvar commands;\n\tvar pathArr;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (!letters[i].n) {\n\t\t\trenderedLetter = renderedLetters[i];\n\t\t\tif (renderedLetter) {\n\t\t\t\tthis.globalData.renderer.save();\n\t\t\t\tthis.globalData.renderer.ctxTransform(renderedLetter.p);\n\t\t\t\tthis.globalData.renderer.ctxOpacity(renderedLetter.o);\n\t\t\t}\n\t\t\tif (this.fill) {\n\t\t\t\tif (renderedLetter && renderedLetter.fc) {\n\t\t\t\t\tif (lastFill !== renderedLetter.fc) {\n\t\t\t\t\t\tlastFill = renderedLetter.fc;\n\t\t\t\t\t\tctx.fillStyle = renderedLetter.fc;\n\t\t\t\t\t}\n\t\t\t\t} else if (lastFill !== this.values.fill) {\n\t\t\t\t\tlastFill = this.values.fill;\n\t\t\t\t\tctx.fillStyle = this.values.fill;\n\t\t\t\t}\n\t\t\t\tcommands = this.textSpans[i].elem;\n\t\t\t\tjLen = commands.length;\n\t\t\t\tthis.globalData.canvasContext.beginPath();\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tpathArr = commands[j];\n\t\t\t\t\tkLen = pathArr.length;\n\t\t\t\t\tthis.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\t\t\t\t\tfor (k = 2; k < kLen; k += 6) {\n\t\t\t\t\t\tthis.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.globalData.canvasContext.closePath();\n\t\t\t\tthis.globalData.canvasContext.fill();\n\t\t\t\t/// ctx.fillText(this.textSpans[i].val,0,0);\n\t\t\t}\n\t\t\tif (this.stroke) {\n\t\t\t\tif (renderedLetter && renderedLetter.sw) {\n\t\t\t\t\tif (lastStrokeW !== renderedLetter.sw) {\n\t\t\t\t\t\tlastStrokeW = renderedLetter.sw;\n\t\t\t\t\t\tctx.lineWidth = renderedLetter.sw;\n\t\t\t\t\t}\n\t\t\t\t} else if (lastStrokeW !== this.values.sWidth) {\n\t\t\t\t\tlastStrokeW = this.values.sWidth;\n\t\t\t\t\tctx.lineWidth = this.values.sWidth;\n\t\t\t\t}\n\t\t\t\tif (renderedLetter && renderedLetter.sc) {\n\t\t\t\t\tif (lastStroke !== renderedLetter.sc) {\n\t\t\t\t\t\tlastStroke = renderedLetter.sc;\n\t\t\t\t\t\tctx.strokeStyle = renderedLetter.sc;\n\t\t\t\t\t}\n\t\t\t\t} else if (lastStroke !== this.values.stroke) {\n\t\t\t\t\tlastStroke = this.values.stroke;\n\t\t\t\t\tctx.strokeStyle = this.values.stroke;\n\t\t\t\t}\n\t\t\t\tcommands = this.textSpans[i].elem;\n\t\t\t\tjLen = commands.length;\n\t\t\t\tthis.globalData.canvasContext.beginPath();\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tpathArr = commands[j];\n\t\t\t\t\tkLen = pathArr.length;\n\t\t\t\t\tthis.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\t\t\t\t\tfor (k = 2; k < kLen; k += 6) {\n\t\t\t\t\t\tthis.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.globalData.canvasContext.closePath();\n\t\t\t\tthis.globalData.canvasContext.stroke();\n\t\t\t\t/// ctx.strokeText(letters[i].val,0,0);\n\t\t\t}\n\t\t\tif (renderedLetter) {\n\t\t\t\tthis.globalData.renderer.restore();\n\t\t\t}\n\t\t}\n\t}\n};\n\nfunction CVImageElement(data, globalData, comp) {\n\tthis.assetData = globalData.getAssetData(data.refId);\n\tthis.img = globalData.imageLoader.getAsset(this.assetData);\n\tthis.initElement(data, globalData, comp);\n}\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n\nCVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\nCVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\nCVImageElement.prototype.createContent = function () {\n\tif (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n\t\tvar canvas = createTag('canvas');\n\t\tcanvas.width = this.assetData.w;\n\t\tcanvas.height = this.assetData.h;\n\t\tvar ctx = canvas.getContext('2d');\n\n\t\tvar imgW = this.img.width;\n\t\tvar imgH = this.img.height;\n\t\tvar imgRel = imgW / imgH;\n\t\tvar canvasRel = this.assetData.w / this.assetData.h;\n\t\tvar widthCrop;\n\t\tvar heightCrop;\n\t\tvar par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\t\tif ((imgRel > canvasRel && par === 'xMidYMid slice') || (imgRel < canvasRel && par !== 'xMidYMid slice')) {\n\t\t\theightCrop = imgH;\n\t\t\twidthCrop = heightCrop * canvasRel;\n\t\t} else {\n\t\t\twidthCrop = imgW;\n\t\t\theightCrop = widthCrop / canvasRel;\n\t\t}\n\t\tctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n\t\tthis.img = canvas;\n\t}\n};\n\nCVImageElement.prototype.renderInnerContent = function () {\n\tthis.canvasContext.drawImage(this.img, 0, 0);\n};\n\nCVImageElement.prototype.destroy = function () {\n\tthis.img = null;\n};\n\nfunction CVSolidElement(data, globalData, comp) {\n\tthis.initElement(data, globalData, comp);\n}\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n\nCVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\nCVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\nCVSolidElement.prototype.renderInnerContent = function () {\n\tvar ctx = this.canvasContext;\n\tctx.fillStyle = this.data.sc;\n\tctx.fillRect(0, 0, this.data.sw, this.data.sh);\n\t//\n};\n\nfunction CanvasRendererBase(animationItem, config) {\n\tthis.animationItem = animationItem;\n\tthis.renderConfig = {\n\t\tclearCanvas: (config && config.clearCanvas !== undefined) ? config.clearCanvas : true,\n\t\tcontext: (config && config.context) || null,\n\t\tprogressiveLoad: (config && config.progressiveLoad) || false,\n\t\tpreserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',\n\t\timagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\n\t\tcontentVisibility: (config && config.contentVisibility) || 'visible',\n\t\tclassName: (config && config.className) || '',\n\t\tid: (config && config.id) || '',\n\t};\n\tthis.renderConfig.dpr = (config && config.dpr) || 1;\n\tif (this.animationItem.wrapper) {\n\t\tthis.renderConfig.dpr = (config && config.dpr) || window.devicePixelRatio || 1;\n\t}\n\tthis.renderedFrame = -1;\n\tthis.globalData = {\n\t\tframeNum: -1,\n\t\t_mdf: false,\n\t\trenderConfig: this.renderConfig,\n\t\tcurrentGlobalAlpha: -1,\n\t};\n\tthis.contextData = new CVContextData();\n\tthis.elements = [];\n\tthis.pendingElements = [];\n\tthis.transformMat = new Matrix();\n\tthis.completeLayers = false;\n\tthis.rendererType = 'canvas';\n}\nextendPrototype([BaseRenderer], CanvasRendererBase);\n\nCanvasRendererBase.prototype.createShape = function (data) {\n\treturn new CVShapeElement(data, this.globalData, this);\n};\n\nCanvasRendererBase.prototype.createText = function (data) {\n\treturn new CVTextElement(data, this.globalData, this);\n};\n\nCanvasRendererBase.prototype.createImage = function (data) {\n\treturn new CVImageElement(data, this.globalData, this);\n};\n\nCanvasRendererBase.prototype.createSolid = function (data) {\n\treturn new CVSolidElement(data, this.globalData, this);\n};\n\nCanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\nCanvasRendererBase.prototype.ctxTransform = function (props) {\n\tif (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n\t\treturn;\n\t}\n\tif (!this.renderConfig.clearCanvas) {\n\t\tthis.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n\t\treturn;\n\t}\n\tthis.transformMat.cloneFromProps(props);\n\tvar cProps = this.contextData.cTr.props;\n\tthis.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]);\n\t// this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\n\tthis.contextData.cTr.cloneFromProps(this.transformMat.props);\n\tvar trProps = this.contextData.cTr.props;\n\tthis.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n};\n\nCanvasRendererBase.prototype.ctxOpacity = function (op) {\n\t/* if(op === 1){\n        return;\n    } */\n\tif (!this.renderConfig.clearCanvas) {\n\t\tthis.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n\t\tthis.globalData.currentGlobalAlpha = this.contextData.cO;\n\t\treturn;\n\t}\n\tthis.contextData.cO *= op < 0 ? 0 : op;\n\tif (this.globalData.currentGlobalAlpha !== this.contextData.cO) {\n\t\tthis.canvasContext.globalAlpha = this.contextData.cO;\n\t\tthis.globalData.currentGlobalAlpha = this.contextData.cO;\n\t}\n};\n\nCanvasRendererBase.prototype.reset = function () {\n\tif (!this.renderConfig.clearCanvas) {\n\t\tthis.canvasContext.restore();\n\t\treturn;\n\t}\n\tthis.contextData.reset();\n};\n\nCanvasRendererBase.prototype.save = function (actionFlag) {\n\tif (!this.renderConfig.clearCanvas) {\n\t\tthis.canvasContext.save();\n\t\treturn;\n\t}\n\tif (actionFlag) {\n\t\tthis.canvasContext.save();\n\t}\n\tvar props = this.contextData.cTr.props;\n\tif (this.contextData._length <= this.contextData.cArrPos) {\n\t\tthis.contextData.duplicate();\n\t}\n\tvar i;\n\tvar arr = this.contextData.saved[this.contextData.cArrPos];\n\tfor (i = 0; i < 16; i += 1) {\n\t\tarr[i] = props[i];\n\t}\n\tthis.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\n\tthis.contextData.cArrPos += 1;\n};\n\nCanvasRendererBase.prototype.restore = function (actionFlag) {\n\tif (!this.renderConfig.clearCanvas) {\n\t\tthis.canvasContext.restore();\n\t\treturn;\n\t}\n\tif (actionFlag) {\n\t\tthis.canvasContext.restore();\n\t\tthis.globalData.blendMode = 'source-over';\n\t}\n\tthis.contextData.cArrPos -= 1;\n\tvar popped = this.contextData.saved[this.contextData.cArrPos];\n\tvar i;\n\tvar arr = this.contextData.cTr.props;\n\tfor (i = 0; i < 16; i += 1) {\n\t\tarr[i] = popped[i];\n\t}\n\tthis.canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\n\tpopped = this.contextData.savedOp[this.contextData.cArrPos];\n\tthis.contextData.cO = popped;\n\tif (this.globalData.currentGlobalAlpha !== popped) {\n\t\tthis.canvasContext.globalAlpha = popped;\n\t\tthis.globalData.currentGlobalAlpha = popped;\n\t}\n};\n\nCanvasRendererBase.prototype.configAnimation = function (animData) {\n\tif (this.animationItem.wrapper) {\n\t\tthis.animationItem.container = createTag('canvas');\n\t\tvar containerStyle = this.animationItem.container.style;\n\t\tcontainerStyle.width = '100%';\n\t\tcontainerStyle.height = '100%';\n\t\tvar origin = '0px 0px 0px';\n\t\tcontainerStyle.transformOrigin = origin;\n\t\tcontainerStyle.mozTransformOrigin = origin;\n\t\tcontainerStyle.webkitTransformOrigin = origin;\n\t\tcontainerStyle['-webkit-transform'] = origin;\n\t\tcontainerStyle.contentVisibility = this.renderConfig.contentVisibility;\n\t\tthis.animationItem.wrapper.appendChild(this.animationItem.container);\n\t\tthis.canvasContext = this.animationItem.container.getContext('2d');\n\t\tif (this.renderConfig.className) {\n\t\t\tthis.animationItem.container.setAttribute('class', this.renderConfig.className);\n\t\t}\n\t\tif (this.renderConfig.id) {\n\t\t\tthis.animationItem.container.setAttribute('id', this.renderConfig.id);\n\t\t}\n\t} else {\n\t\tthis.canvasContext = this.renderConfig.context;\n\t}\n\tthis.data = animData;\n\tthis.layers = animData.layers;\n\tthis.transformCanvas = {\n\t\tw: animData.w,\n\t\th: animData.h,\n\t\tsx: 0,\n\t\tsy: 0,\n\t\ttx: 0,\n\t\tty: 0,\n\t};\n\tthis.setupGlobalData(animData, document.body);\n\tthis.globalData.canvasContext = this.canvasContext;\n\tthis.globalData.renderer = this;\n\tthis.globalData.isDashed = false;\n\tthis.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n\tthis.globalData.transformCanvas = this.transformCanvas;\n\tthis.elements = createSizedArray(animData.layers.length);\n\n\tthis.updateContainerSize();\n};\n\nCanvasRendererBase.prototype.updateContainerSize = function () {\n\tthis.reset();\n\tvar elementWidth;\n\tvar elementHeight;\n\tif (this.animationItem.wrapper && this.animationItem.container) {\n\t\telementWidth = this.animationItem.wrapper.offsetWidth;\n\t\telementHeight = this.animationItem.wrapper.offsetHeight;\n\t\tthis.animationItem.container.setAttribute('width', elementWidth * this.renderConfig.dpr);\n\t\tthis.animationItem.container.setAttribute('height', elementHeight * this.renderConfig.dpr);\n\t} else {\n\t\telementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;\n\t\telementHeight = this.canvasContext.canvas.height * this.renderConfig.dpr;\n\t}\n\tvar elementRel;\n\tvar animationRel;\n\tif (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n\t\tvar par = this.renderConfig.preserveAspectRatio.split(' ');\n\t\tvar fillType = par[1] || 'meet';\n\t\tvar pos = par[0] || 'xMidYMid';\n\t\tvar xPos = pos.substr(0, 4);\n\t\tvar yPos = pos.substr(4);\n\t\telementRel = elementWidth / elementHeight;\n\t\tanimationRel = this.transformCanvas.w / this.transformCanvas.h;\n\t\tif ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice')) {\n\t\t\tthis.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n\t\t\tthis.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n\t\t} else {\n\t\t\tthis.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n\t\t\tthis.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n\t\t}\n\n\t\tif (xPos === 'xMid' && ((animationRel < elementRel && fillType === 'meet') || (animationRel > elementRel && fillType === 'slice'))) {\n\t\t\tthis.transformCanvas.tx = ((elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2) * this.renderConfig.dpr;\n\t\t} else if (xPos === 'xMax' && ((animationRel < elementRel && fillType === 'meet') || (animationRel > elementRel && fillType === 'slice'))) {\n\t\t\tthis.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n\t\t} else {\n\t\t\tthis.transformCanvas.tx = 0;\n\t\t}\n\t\tif (yPos === 'YMid' && ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice'))) {\n\t\t\tthis.transformCanvas.ty = ((elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2) * this.renderConfig.dpr;\n\t\t} else if (yPos === 'YMax' && ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice'))) {\n\t\t\tthis.transformCanvas.ty = ((elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w))) * this.renderConfig.dpr;\n\t\t} else {\n\t\t\tthis.transformCanvas.ty = 0;\n\t\t}\n\t} else if (this.renderConfig.preserveAspectRatio === 'none') {\n\t\tthis.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n\t\tthis.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n\t\tthis.transformCanvas.tx = 0;\n\t\tthis.transformCanvas.ty = 0;\n\t} else {\n\t\tthis.transformCanvas.sx = this.renderConfig.dpr;\n\t\tthis.transformCanvas.sy = this.renderConfig.dpr;\n\t\tthis.transformCanvas.tx = 0;\n\t\tthis.transformCanvas.ty = 0;\n\t}\n\tthis.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\t/* var i, len = this.elements.length;\n    for(i=0;i<len;i+=1){\n        if(this.elements[i] && this.elements[i].data.ty === 0){\n            this.elements[i].resize(this.globalData.transformCanvas);\n        }\n    } */\n\tthis.ctxTransform(this.transformCanvas.props);\n\tthis.canvasContext.beginPath();\n\tthis.canvasContext.rect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n\tthis.canvasContext.closePath();\n\tthis.canvasContext.clip();\n\n\tthis.renderFrame(this.renderedFrame, true);\n};\n\nCanvasRendererBase.prototype.destroy = function () {\n\tif (this.renderConfig.clearCanvas && this.animationItem.wrapper) {\n\t\tthis.animationItem.wrapper.innerText = '';\n\t}\n\tvar i;\n\tvar len = this.layers ? this.layers.length : 0;\n\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\tif (this.elements[i]) {\n\t\t\tthis.elements[i].destroy();\n\t\t}\n\t}\n\tthis.elements.length = 0;\n\tthis.globalData.canvasContext = null;\n\tthis.animationItem.container = null;\n\tthis.destroyed = true;\n};\n\nCanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n\tif ((this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender) || this.destroyed || num === -1) {\n\t\treturn;\n\t}\n\tthis.renderedFrame = num;\n\tthis.globalData.frameNum = num - this.animationItem._isFirstFrame;\n\tthis.globalData.frameId += 1;\n\tthis.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n\tthis.globalData.projectInterface.currentFrame = num;\n\n\t// console.log('--------');\n\t// console.log('NEW: ',num);\n\tvar i;\n\tvar len = this.layers.length;\n\tif (!this.completeLayers) {\n\t\tthis.checkLayers(num);\n\t}\n\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.completeLayers || this.elements[i]) {\n\t\t\tthis.elements[i].prepareFrame(num - this.layers[i].st);\n\t\t}\n\t}\n\tif (this.globalData._mdf) {\n\t\tif (this.renderConfig.clearCanvas === true) {\n\t\t\tthis.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n\t\t} else {\n\t\t\tthis.save();\n\t\t}\n\t\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\t\tif (this.completeLayers || this.elements[i]) {\n\t\t\t\tthis.elements[i].renderFrame();\n\t\t\t}\n\t\t}\n\t\tif (this.renderConfig.clearCanvas !== true) {\n\t\t\tthis.restore();\n\t\t}\n\t}\n};\n\nCanvasRendererBase.prototype.buildItem = function (pos) {\n\tvar elements = this.elements;\n\tif (elements[pos] || this.layers[pos].ty === 99) {\n\t\treturn;\n\t}\n\tvar element = this.createItem(this.layers[pos], this, this.globalData);\n\telements[pos] = element;\n\telement.initExpressions();\n\t/* if(this.layers[pos].ty === 0){\n        element.resize(this.globalData.transformCanvas);\n    } */\n};\n\nCanvasRendererBase.prototype.checkPendingElements = function () {\n\twhile (this.pendingElements.length) {\n\t\tvar element = this.pendingElements.pop();\n\t\telement.checkParenting();\n\t}\n};\n\nCanvasRendererBase.prototype.hide = function () {\n\tthis.animationItem.container.style.display = 'none';\n};\n\nCanvasRendererBase.prototype.show = function () {\n\tthis.animationItem.container.style.display = 'block';\n};\n\nfunction CVCompElement(data, globalData, comp) {\n\tthis.completeLayers = false;\n\tthis.layers = data.layers;\n\tthis.pendingElements = [];\n\tthis.elements = createSizedArray(this.layers.length);\n\tthis.initElement(data, globalData, comp);\n\tthis.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\n}\n\nextendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\nCVCompElement.prototype.renderInnerContent = function () {\n\tvar ctx = this.canvasContext;\n\tctx.beginPath();\n\tctx.moveTo(0, 0);\n\tctx.lineTo(this.data.w, 0);\n\tctx.lineTo(this.data.w, this.data.h);\n\tctx.lineTo(0, this.data.h);\n\tctx.lineTo(0, 0);\n\tctx.clip();\n\tvar i;\n\tvar len = this.layers.length;\n\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\tif (this.completeLayers || this.elements[i]) {\n\t\t\tthis.elements[i].renderFrame();\n\t\t}\n\t}\n};\n\nCVCompElement.prototype.destroy = function () {\n\tvar i;\n\tvar len = this.layers.length;\n\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\tif (this.elements[i]) {\n\t\t\tthis.elements[i].destroy();\n\t\t}\n\t}\n\tthis.layers = null;\n\tthis.elements = null;\n};\n\nCVCompElement.prototype.createComp = function (data) {\n\treturn new CVCompElement(data, this.globalData, this);\n};\n\nfunction CanvasRenderer(animationItem, config) {\n\tthis.animationItem = animationItem;\n\tthis.renderConfig = {\n\t\tclearCanvas: (config && config.clearCanvas !== undefined) ? config.clearCanvas : true,\n\t\tcontext: (config && config.context) || null,\n\t\tprogressiveLoad: (config && config.progressiveLoad) || false,\n\t\tpreserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',\n\t\timagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\n\t\tcontentVisibility: (config && config.contentVisibility) || 'visible',\n\t\tclassName: (config && config.className) || '',\n\t\tid: (config && config.id) || '',\n\t};\n\tthis.renderConfig.dpr = (config && config.dpr) || 1;\n\tif (this.animationItem.wrapper) {\n\t\tthis.renderConfig.dpr = (config && config.dpr) || window.devicePixelRatio || 1;\n\t}\n\tthis.renderedFrame = -1;\n\tthis.globalData = {\n\t\tframeNum: -1,\n\t\t_mdf: false,\n\t\trenderConfig: this.renderConfig,\n\t\tcurrentGlobalAlpha: -1,\n\t};\n\tthis.contextData = new CVContextData();\n\tthis.elements = [];\n\tthis.pendingElements = [];\n\tthis.transformMat = new Matrix();\n\tthis.completeLayers = false;\n\tthis.rendererType = 'canvas';\n}\nextendPrototype([CanvasRendererBase], CanvasRenderer);\n\nCanvasRenderer.prototype.createComp = function (data) {\n\treturn new CVCompElement(data, this.globalData, this);\n};\n\nfunction HBaseElement() {}\nHBaseElement.prototype = {\n\tcheckBlendMode: function () {},\n\tinitRendererElement: function () {\n\t\tthis.baseElement = createTag(this.data.tg || 'div');\n\t\tif (this.data.hasMask) {\n\t\t\tthis.svgElement = createNS('svg');\n\t\t\tthis.layerElement = createNS('g');\n\t\t\tthis.maskedElement = this.layerElement;\n\t\t\tthis.svgElement.appendChild(this.layerElement);\n\t\t\tthis.baseElement.appendChild(this.svgElement);\n\t\t} else {\n\t\t\tthis.layerElement = this.baseElement;\n\t\t}\n\t\tstyleDiv(this.baseElement);\n\t},\n\tcreateContainerElements: function () {\n\t\tthis.renderableEffectsManager = new CVEffects(this);\n\t\tthis.transformedElement = this.baseElement;\n\t\tthis.maskedElement = this.layerElement;\n\t\tif (this.data.ln) {\n\t\t\tthis.layerElement.setAttribute('id', this.data.ln);\n\t\t}\n\t\tif (this.data.cl) {\n\t\t\tthis.layerElement.setAttribute('class', this.data.cl);\n\t\t}\n\t\tif (this.data.bm !== 0) {\n\t\t\tthis.setBlendMode();\n\t\t}\n\t},\n\trenderElement: function () {\n\t\tvar transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\t\tif (this.finalTransform._matMdf) {\n\t\t\tvar matrixValue = this.finalTransform.mat.toCSS();\n\t\t\ttransformedElementStyle.transform = matrixValue;\n\t\t\ttransformedElementStyle.webkitTransform = matrixValue;\n\t\t}\n\t\tif (this.finalTransform._opMdf) {\n\t\t\ttransformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n\t\t}\n\t},\n\trenderFrame: function () {\n\t\t// If it is exported as hidden (data.hd === true) no need to render\n\t\t// If it is not visible no need to render\n\t\tif (this.data.hd || this.hidden) {\n\t\t\treturn;\n\t\t}\n\t\tthis.renderTransform();\n\t\tthis.renderRenderable();\n\t\tthis.renderElement();\n\t\tthis.renderInnerContent();\n\t\tif (this._isFirstFrame) {\n\t\t\tthis._isFirstFrame = false;\n\t\t}\n\t},\n\tdestroy: function () {\n\t\tthis.layerElement = null;\n\t\tthis.transformedElement = null;\n\t\tif (this.matteElement) {\n\t\t\tthis.matteElement = null;\n\t\t}\n\t\tif (this.maskManager) {\n\t\t\tthis.maskManager.destroy();\n\t\t\tthis.maskManager = null;\n\t\t}\n\t},\n\tcreateRenderableComponents: function () {\n\t\tthis.maskManager = new MaskElement(this.data, this, this.globalData);\n\t},\n\taddEffects: function () {\n\t},\n\tsetMatte: function () {},\n};\nHBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\nHBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\nHBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\nfunction HSolidElement(data, globalData, comp) {\n\tthis.initElement(data, globalData, comp);\n}\nextendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\nHSolidElement.prototype.createContent = function () {\n\tvar rect;\n\tif (this.data.hasMask) {\n\t\trect = createNS('rect');\n\t\trect.setAttribute('width', this.data.sw);\n\t\trect.setAttribute('height', this.data.sh);\n\t\trect.setAttribute('fill', this.data.sc);\n\t\tthis.svgElement.setAttribute('width', this.data.sw);\n\t\tthis.svgElement.setAttribute('height', this.data.sh);\n\t} else {\n\t\trect = createTag('div');\n\t\trect.style.width = this.data.sw + 'px';\n\t\trect.style.height = this.data.sh + 'px';\n\t\trect.style.backgroundColor = this.data.sc;\n\t}\n\tthis.layerElement.appendChild(rect);\n};\n\nfunction HShapeElement(data, globalData, comp) {\n\t// List of drawable elements\n\tthis.shapes = [];\n\t// Full shape data\n\tthis.shapesData = data.shapes;\n\t// List of styles that will be applied to shapes\n\tthis.stylesList = [];\n\t// List of modifiers that will be applied to shapes\n\tthis.shapeModifiers = [];\n\t// List of items in shape tree\n\tthis.itemsData = [];\n\t// List of items in previous shape tree\n\tthis.processedElements = [];\n\t// List of animated components\n\tthis.animatedContents = [];\n\tthis.shapesContainer = createNS('g');\n\tthis.initElement(data, globalData, comp);\n\t// Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n\t// List of elements that have been created\n\tthis.prevViewData = [];\n\tthis.currentBBox = {\n\t\tx: 999999,\n\t\ty: -999999,\n\t\th: 0,\n\t\tw: 0,\n\t};\n}\nextendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\nHShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\nHShapeElement.prototype.createContent = function () {\n\tvar cont;\n\tthis.baseElement.style.fontSize = 0;\n\tif (this.data.hasMask) {\n\t\tthis.layerElement.appendChild(this.shapesContainer);\n\t\tcont = this.svgElement;\n\t} else {\n\t\tcont = createNS('svg');\n\t\tvar size = this.comp.data ? this.comp.data : this.globalData.compSize;\n\t\tcont.setAttribute('width', size.w);\n\t\tcont.setAttribute('height', size.h);\n\t\tcont.appendChild(this.shapesContainer);\n\t\tthis.layerElement.appendChild(cont);\n\t}\n\n\tthis.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n\tthis.filterUniqueShapes();\n\tthis.shapeCont = cont;\n};\n\nHShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n\tvar i;\n\tvar len = transformers.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tpoint = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n\t}\n\treturn point;\n};\n\nHShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n\tvar shape = item.sh.v;\n\tvar transformers = item.transformers;\n\tvar i;\n\tvar len = shape._length;\n\tvar vPoint;\n\tvar oPoint;\n\tvar nextIPoint;\n\tvar nextVPoint;\n\tif (len <= 1) {\n\t\treturn;\n\t}\n\tfor (i = 0; i < len - 1; i += 1) {\n\t\tvPoint = this.getTransformedPoint(transformers, shape.v[i]);\n\t\toPoint = this.getTransformedPoint(transformers, shape.o[i]);\n\t\tnextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n\t\tnextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n\t\tthis.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n\t}\n\tif (shape.c) {\n\t\tvPoint = this.getTransformedPoint(transformers, shape.v[i]);\n\t\toPoint = this.getTransformedPoint(transformers, shape.o[i]);\n\t\tnextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n\t\tnextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n\t\tthis.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n\t}\n};\n\nHShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n\tthis.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n\tvar bounds = this.shapeBoundingBox;\n\tboundingBox.x = bmMin(bounds.left, boundingBox.x);\n\tboundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n\tboundingBox.y = bmMin(bounds.top, boundingBox.y);\n\tboundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n};\n\nHShapeElement.prototype.shapeBoundingBox = {\n\tleft: 0,\n\tright: 0,\n\ttop: 0,\n\tbottom: 0,\n};\n\nHShapeElement.prototype.tempBoundingBox = {\n\tx: 0,\n\txMax: 0,\n\ty: 0,\n\tyMax: 0,\n\twidth: 0,\n\theight: 0,\n};\n\nHShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n\tvar bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n\tfor (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) { // eslint-disable-line no-plusplus\n\t\tb = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n\t\ta = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n\t\tc = 3 * p1[i] - 3 * p0[i];\n\n\t\tb |= 0; // eslint-disable-line no-bitwise\n\t\ta |= 0; // eslint-disable-line no-bitwise\n\t\tc |= 0; // eslint-disable-line no-bitwise\n\n\t\tif (a === 0 && b === 0) {\n\t\t\t//\n\t\t} else if (a === 0) {\n\t\t\tt = -c / b;\n\n\t\t\tif (t > 0 && t < 1) {\n\t\t\t\tbounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n\t\t\t}\n\t\t} else {\n\t\t\tb2ac = b * b - 4 * c * a;\n\n\t\t\tif (b2ac >= 0) {\n\t\t\t\tt1 = (-b + bmSqrt(b2ac)) / (2 * a);\n\t\t\t\tif (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n\t\t\t\tt2 = (-b - bmSqrt(b2ac)) / (2 * a);\n\t\t\t\tif (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n\tthis.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n\tthis.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n\tthis.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n};\n\nHShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n\treturn bmPow(1 - t, 3) * p0[i]\n\t\t+ 3 * bmPow(1 - t, 2) * t * p1[i]\n\t\t+ 3 * (1 - t) * bmPow(t, 2) * p2[i]\n\t\t+ bmPow(t, 3) * p3[i];\n};\n\nHShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n\tvar i;\n\tvar len = itemsData.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (itemsData[i] && itemsData[i].sh) {\n\t\t\tthis.calculateShapeBoundingBox(itemsData[i], boundingBox);\n\t\t} else if (itemsData[i] && itemsData[i].it) {\n\t\t\tthis.calculateBoundingBox(itemsData[i].it, boundingBox);\n\t\t} else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n\t\t\tthis.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n\t\t}\n\t}\n};\n\nHShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n\tvar width = 0;\n\tif (widthProperty.keyframes) {\n\t\tfor (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n\t\t\tvar kfw = widthProperty.keyframes[i].s;\n\t\t\tif (kfw > width) {\n\t\t\t\twidth = kfw;\n\t\t\t}\n\t\t}\n\t\twidth *= widthProperty.mult;\n\t} else {\n\t\twidth = widthProperty.v * widthProperty.mult;\n\t}\n\n\tboundingBox.x -= width;\n\tboundingBox.xMax += width;\n\tboundingBox.y -= width;\n\tboundingBox.yMax += width;\n};\n\nHShapeElement.prototype.currentBoxContains = function (box) {\n\treturn this.currentBBox.x <= box.x\n\t\t&& this.currentBBox.y <= box.y\n\t\t&& this.currentBBox.width + this.currentBBox.x >= box.x + box.width\n\t\t&& this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n};\n\nHShapeElement.prototype.renderInnerContent = function () {\n\tthis._renderShapeFrame();\n\n\tif (!this.hidden && (this._isFirstFrame || this._mdf)) {\n\t\tvar tempBoundingBox = this.tempBoundingBox;\n\t\tvar max = 999999;\n\t\ttempBoundingBox.x = max;\n\t\ttempBoundingBox.xMax = -max;\n\t\ttempBoundingBox.y = max;\n\t\ttempBoundingBox.yMax = -max;\n\t\tthis.calculateBoundingBox(this.itemsData, tempBoundingBox);\n\t\ttempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n\t\ttempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y;\n\t\t// var tempBoundingBox = this.shapeCont.getBBox();\n\t\tif (this.currentBoxContains(tempBoundingBox)) {\n\t\t\treturn;\n\t\t}\n\t\tvar changed = false;\n\t\tif (this.currentBBox.w !== tempBoundingBox.width) {\n\t\t\tthis.currentBBox.w = tempBoundingBox.width;\n\t\t\tthis.shapeCont.setAttribute('width', tempBoundingBox.width);\n\t\t\tchanged = true;\n\t\t}\n\t\tif (this.currentBBox.h !== tempBoundingBox.height) {\n\t\t\tthis.currentBBox.h = tempBoundingBox.height;\n\t\t\tthis.shapeCont.setAttribute('height', tempBoundingBox.height);\n\t\t\tchanged = true;\n\t\t}\n\t\tif (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n\t\t\tthis.currentBBox.w = tempBoundingBox.width;\n\t\t\tthis.currentBBox.h = tempBoundingBox.height;\n\t\t\tthis.currentBBox.x = tempBoundingBox.x;\n\t\t\tthis.currentBBox.y = tempBoundingBox.y;\n\n\t\t\tthis.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n\t\t\tvar shapeStyle = this.shapeCont.style;\n\t\t\tvar shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n\t\t\tshapeStyle.transform = shapeTransform;\n\t\t\tshapeStyle.webkitTransform = shapeTransform;\n\t\t}\n\t}\n};\n\nfunction HTextElement(data, globalData, comp) {\n\tthis.textSpans = [];\n\tthis.textPaths = [];\n\tthis.currentBBox = {\n\t\tx: 999999,\n\t\ty: -999999,\n\t\th: 0,\n\t\tw: 0,\n\t};\n\tthis.renderType = 'svg';\n\tthis.isMasked = false;\n\tthis.initElement(data, globalData, comp);\n}\nextendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\nHTextElement.prototype.createContent = function () {\n\tthis.isMasked = this.checkMasks();\n\tif (this.isMasked) {\n\t\tthis.renderType = 'svg';\n\t\tthis.compW = this.comp.data.w;\n\t\tthis.compH = this.comp.data.h;\n\t\tthis.svgElement.setAttribute('width', this.compW);\n\t\tthis.svgElement.setAttribute('height', this.compH);\n\t\tvar g = createNS('g');\n\t\tthis.maskedElement.appendChild(g);\n\t\tthis.innerElem = g;\n\t} else {\n\t\tthis.renderType = 'html';\n\t\tthis.innerElem = this.layerElement;\n\t}\n\n\tthis.checkParenting();\n};\n\nHTextElement.prototype.buildNewText = function () {\n\tvar documentData = this.textProperty.currentData;\n\tthis.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n\tvar innerElemStyle = this.innerElem.style;\n\tvar textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n\tinnerElemStyle.fill = textColor;\n\tinnerElemStyle.color = textColor;\n\tif (documentData.sc) {\n\t\tinnerElemStyle.stroke = this.buildColor(documentData.sc);\n\t\tinnerElemStyle.strokeWidth = documentData.sw + 'px';\n\t}\n\tvar fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\tif (!this.globalData.fontManager.chars) {\n\t\tinnerElemStyle.fontSize = documentData.finalSize + 'px';\n\t\tinnerElemStyle.lineHeight = documentData.finalSize + 'px';\n\t\tif (fontData.fClass) {\n\t\t\tthis.innerElem.className = fontData.fClass;\n\t\t} else {\n\t\t\tinnerElemStyle.fontFamily = fontData.fFamily;\n\t\t\tvar fWeight = documentData.fWeight;\n\t\t\tvar fStyle = documentData.fStyle;\n\t\t\tinnerElemStyle.fontStyle = fStyle;\n\t\t\tinnerElemStyle.fontWeight = fWeight;\n\t\t}\n\t}\n\tvar i;\n\tvar len;\n\n\tvar letters = documentData.l;\n\tlen = letters.length;\n\tvar tSpan;\n\tvar tParent;\n\tvar tCont;\n\tvar matrixHelper = this.mHelper;\n\tvar shapes;\n\tvar shapeStr = '';\n\tvar cnt = 0;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.globalData.fontManager.chars) {\n\t\t\tif (!this.textPaths[cnt]) {\n\t\t\t\ttSpan = createNS('path');\n\t\t\t\ttSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n\t\t\t\ttSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n\t\t\t\ttSpan.setAttribute('stroke-miterlimit', '4');\n\t\t\t} else {\n\t\t\t\ttSpan = this.textPaths[cnt];\n\t\t\t}\n\t\t\tif (!this.isMasked) {\n\t\t\t\tif (this.textSpans[cnt]) {\n\t\t\t\t\ttParent = this.textSpans[cnt];\n\t\t\t\t\ttCont = tParent.children[0];\n\t\t\t\t} else {\n\t\t\t\t\ttParent = createTag('div');\n\t\t\t\t\ttParent.style.lineHeight = 0;\n\t\t\t\t\ttCont = createNS('svg');\n\t\t\t\t\ttCont.appendChild(tSpan);\n\t\t\t\t\tstyleDiv(tParent);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!this.isMasked) {\n\t\t\tif (this.textSpans[cnt]) {\n\t\t\t\ttParent = this.textSpans[cnt];\n\t\t\t\ttSpan = this.textPaths[cnt];\n\t\t\t} else {\n\t\t\t\ttParent = createTag('span');\n\t\t\t\tstyleDiv(tParent);\n\t\t\t\ttSpan = createTag('span');\n\t\t\t\tstyleDiv(tSpan);\n\t\t\t\ttParent.appendChild(tSpan);\n\t\t\t}\n\t\t} else {\n\t\t\ttSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n\t\t}\n\t\t// tSpan.setAttribute('visibility', 'hidden');\n\t\tif (this.globalData.fontManager.chars) {\n\t\t\tvar charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n\t\t\tvar shapeData;\n\t\t\tif (charData) {\n\t\t\t\tshapeData = charData.data;\n\t\t\t} else {\n\t\t\t\tshapeData = null;\n\t\t\t}\n\t\t\tmatrixHelper.reset();\n\t\t\tif (shapeData && shapeData.shapes && shapeData.shapes.length) {\n\t\t\t\tshapes = shapeData.shapes[0].it;\n\t\t\t\tmatrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\t\t\t\tshapeStr = this.createPathShape(matrixHelper, shapes);\n\t\t\t\ttSpan.setAttribute('d', shapeStr);\n\t\t\t}\n\t\t\tif (!this.isMasked) {\n\t\t\t\tthis.innerElem.appendChild(tParent);\n\t\t\t\tif (shapeData && shapeData.shapes) {\n\t\t\t\t\t// document.body.appendChild is needed to get exact measure of shape\n\t\t\t\t\tdocument.body.appendChild(tCont);\n\t\t\t\t\tvar boundingBox = tCont.getBBox();\n\t\t\t\t\ttCont.setAttribute('width', boundingBox.width + 2);\n\t\t\t\t\ttCont.setAttribute('height', boundingBox.height + 2);\n\t\t\t\t\ttCont.setAttribute('viewBox', (boundingBox.x - 1) + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n\t\t\t\t\tvar tContStyle = tCont.style;\n\t\t\t\t\tvar tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n\t\t\t\t\ttContStyle.transform = tContTranslation;\n\t\t\t\t\ttContStyle.webkitTransform = tContTranslation;\n\n\t\t\t\t\tletters[i].yOffset = boundingBox.y - 1;\n\t\t\t\t} else {\n\t\t\t\t\ttCont.setAttribute('width', 1);\n\t\t\t\t\ttCont.setAttribute('height', 1);\n\t\t\t\t}\n\t\t\t\ttParent.appendChild(tCont);\n\t\t\t} else {\n\t\t\t\tthis.innerElem.appendChild(tSpan);\n\t\t\t}\n\t\t} else {\n\t\t\ttSpan.textContent = letters[i].val;\n\t\t\ttSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\t\t\tif (!this.isMasked) {\n\t\t\t\tthis.innerElem.appendChild(tParent);\n\t\t\t\t//\n\t\t\t\tvar tStyle = tSpan.style;\n\t\t\t\tvar tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n\t\t\t\ttStyle.transform = tSpanTranslation;\n\t\t\t\ttStyle.webkitTransform = tSpanTranslation;\n\t\t\t} else {\n\t\t\t\tthis.innerElem.appendChild(tSpan);\n\t\t\t}\n\t\t}\n\t\t//\n\t\tif (!this.isMasked) {\n\t\t\tthis.textSpans[cnt] = tParent;\n\t\t} else {\n\t\t\tthis.textSpans[cnt] = tSpan;\n\t\t}\n\t\tthis.textSpans[cnt].style.display = 'block';\n\t\tthis.textPaths[cnt] = tSpan;\n\t\tcnt += 1;\n\t}\n\twhile (cnt < this.textSpans.length) {\n\t\tthis.textSpans[cnt].style.display = 'none';\n\t\tcnt += 1;\n\t}\n};\n\nHTextElement.prototype.renderInnerContent = function () {\n\tvar svgStyle;\n\tif (this.data.singleShape) {\n\t\tif (!this._isFirstFrame && !this.lettersChangedFlag) {\n\t\t\treturn;\n\t\t} if (this.isMasked && this.finalTransform._matMdf) {\n\t\t\t// Todo Benchmark if using this is better than getBBox\n\t\t\tthis.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n\t\t\tsvgStyle = this.svgElement.style;\n\t\t\tvar translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n\t\t\tsvgStyle.transform = translation;\n\t\t\tsvgStyle.webkitTransform = translation;\n\t\t}\n\t}\n\n\tthis.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\tif (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n\t\treturn;\n\t}\n\tvar i;\n\tvar len;\n\tvar count = 0;\n\tvar renderedLetters = this.textAnimator.renderedLetters;\n\n\tvar letters = this.textProperty.currentData.l;\n\n\tlen = letters.length;\n\tvar renderedLetter;\n\tvar textSpan;\n\tvar textPath;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (letters[i].n) {\n\t\t\tcount += 1;\n\t\t} else {\n\t\t\ttextSpan = this.textSpans[i];\n\t\t\ttextPath = this.textPaths[i];\n\t\t\trenderedLetter = renderedLetters[count];\n\t\t\tcount += 1;\n\t\t\tif (renderedLetter._mdf.m) {\n\t\t\t\tif (!this.isMasked) {\n\t\t\t\t\ttextSpan.style.webkitTransform = renderedLetter.m;\n\t\t\t\t\ttextSpan.style.transform = renderedLetter.m;\n\t\t\t\t} else {\n\t\t\t\t\ttextSpan.setAttribute('transform', renderedLetter.m);\n\t\t\t\t}\n\t\t\t}\n\t\t\t/// /textSpan.setAttribute('opacity',renderedLetter.o);\n\t\t\ttextSpan.style.opacity = renderedLetter.o;\n\t\t\tif (renderedLetter.sw && renderedLetter._mdf.sw) {\n\t\t\t\ttextPath.setAttribute('stroke-width', renderedLetter.sw);\n\t\t\t}\n\t\t\tif (renderedLetter.sc && renderedLetter._mdf.sc) {\n\t\t\t\ttextPath.setAttribute('stroke', renderedLetter.sc);\n\t\t\t}\n\t\t\tif (renderedLetter.fc && renderedLetter._mdf.fc) {\n\t\t\t\ttextPath.setAttribute('fill', renderedLetter.fc);\n\t\t\t\ttextPath.style.color = renderedLetter.fc;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n\t\tvar boundingBox = this.innerElem.getBBox();\n\n\t\tif (this.currentBBox.w !== boundingBox.width) {\n\t\t\tthis.currentBBox.w = boundingBox.width;\n\t\t\tthis.svgElement.setAttribute('width', boundingBox.width);\n\t\t}\n\t\tif (this.currentBBox.h !== boundingBox.height) {\n\t\t\tthis.currentBBox.h = boundingBox.height;\n\t\t\tthis.svgElement.setAttribute('height', boundingBox.height);\n\t\t}\n\n\t\tvar margin = 1;\n\t\tif (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\t\t\tthis.currentBBox.w = boundingBox.width + margin * 2;\n\t\t\tthis.currentBBox.h = boundingBox.height + margin * 2;\n\t\t\tthis.currentBBox.x = boundingBox.x - margin;\n\t\t\tthis.currentBBox.y = boundingBox.y - margin;\n\n\t\t\tthis.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n\t\t\tsvgStyle = this.svgElement.style;\n\t\t\tvar svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n\t\t\tsvgStyle.transform = svgTransform;\n\t\t\tsvgStyle.webkitTransform = svgTransform;\n\t\t}\n\t}\n};\n\nfunction HCameraElement(data, globalData, comp) {\n\tthis.initFrame();\n\tthis.initBaseData(data, globalData, comp);\n\tthis.initHierarchy();\n\tvar getProp = PropertyFactory.getProp;\n\tthis.pe = getProp(this, data.pe, 0, 0, this);\n\tif (data.ks.p.s) {\n\t\tthis.px = getProp(this, data.ks.p.x, 1, 0, this);\n\t\tthis.py = getProp(this, data.ks.p.y, 1, 0, this);\n\t\tthis.pz = getProp(this, data.ks.p.z, 1, 0, this);\n\t} else {\n\t\tthis.p = getProp(this, data.ks.p, 1, 0, this);\n\t}\n\tif (data.ks.a) {\n\t\tthis.a = getProp(this, data.ks.a, 1, 0, this);\n\t}\n\tif (data.ks.or.k.length && data.ks.or.k[0].to) {\n\t\tvar i;\n\t\tvar len = data.ks.or.k.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tdata.ks.or.k[i].to = null;\n\t\t\tdata.ks.or.k[i].ti = null;\n\t\t}\n\t}\n\tthis.or = getProp(this, data.ks.or, 1, degToRads, this);\n\tthis.or.sh = true;\n\tthis.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n\tthis.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n\tthis.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n\tthis.mat = new Matrix();\n\tthis._prevMat = new Matrix();\n\tthis._isFirstFrame = true;\n\n\t// TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\tthis.finalTransform = {\n\t\tmProp: this,\n\t};\n}\nextendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\nHCameraElement.prototype.setup = function () {\n\tvar i;\n\tvar len = this.comp.threeDElements.length;\n\tvar comp;\n\tvar perspectiveStyle;\n\tvar containerStyle;\n\tfor (i = 0; i < len; i += 1) {\n\t\t// [perspectiveElem,container]\n\t\tcomp = this.comp.threeDElements[i];\n\t\tif (comp.type === '3d') {\n\t\t\tperspectiveStyle = comp.perspectiveElem.style;\n\t\t\tcontainerStyle = comp.container.style;\n\t\t\tvar perspective = this.pe.v + 'px';\n\t\t\tvar origin = '0px 0px 0px';\n\t\t\tvar matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n\t\t\tperspectiveStyle.perspective = perspective;\n\t\t\tperspectiveStyle.webkitPerspective = perspective;\n\t\t\tcontainerStyle.transformOrigin = origin;\n\t\t\tcontainerStyle.mozTransformOrigin = origin;\n\t\t\tcontainerStyle.webkitTransformOrigin = origin;\n\t\t\tperspectiveStyle.transform = matrix;\n\t\t\tperspectiveStyle.webkitTransform = matrix;\n\t\t}\n\t}\n};\n\nHCameraElement.prototype.createElements = function () {\n};\n\nHCameraElement.prototype.hide = function () {\n};\n\nHCameraElement.prototype.renderFrame = function () {\n\tvar _mdf = this._isFirstFrame;\n\tvar i;\n\tvar len;\n\tif (this.hierarchy) {\n\t\tlen = this.hierarchy.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t_mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n\t\t}\n\t}\n\tif (_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\t\tthis.mat.reset();\n\n\t\tif (this.hierarchy) {\n\t\t\tlen = this.hierarchy.length - 1;\n\t\t\tfor (i = len; i >= 0; i -= 1) {\n\t\t\t\tvar mTransf = this.hierarchy[i].finalTransform.mProp;\n\t\t\t\tthis.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n\t\t\t\tthis.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n\t\t\t\tthis.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n\t\t\t\tthis.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n\t\t\t\tthis.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n\t\t\t}\n\t\t}\n\t\tif (this.p) {\n\t\t\tthis.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n\t\t} else {\n\t\t\tthis.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n\t\t}\n\t\tif (this.a) {\n\t\t\tvar diffVector;\n\t\t\tif (this.p) {\n\t\t\t\tdiffVector = [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\t\t\t} else {\n\t\t\t\tdiffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n\t\t\t}\n\t\t\tvar mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2));\n\t\t\t// var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\t\t\tvar lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n\t\t\tvar lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n\t\t\tvar mRotationX = (Math.atan2(lookDir[1], lookLengthOnXZ));\n\t\t\tvar mRotationY = (Math.atan2(lookDir[0], -lookDir[2]));\n\t\t\tthis.mat.rotateY(mRotationY).rotateX(-mRotationX);\n\t\t}\n\t\tthis.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n\t\tthis.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n\t\tthis.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n\t\tthis.mat.translate(0, 0, this.pe.v);\n\n\t\tvar hasMatrixChanged = !this._prevMat.equals(this.mat);\n\t\tif ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n\t\t\tlen = this.comp.threeDElements.length;\n\t\t\tvar comp;\n\t\t\tvar perspectiveStyle;\n\t\t\tvar containerStyle;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tcomp = this.comp.threeDElements[i];\n\t\t\t\tif (comp.type === '3d') {\n\t\t\t\t\tif (hasMatrixChanged) {\n\t\t\t\t\t\tvar matValue = this.mat.toCSS();\n\t\t\t\t\t\tcontainerStyle = comp.container.style;\n\t\t\t\t\t\tcontainerStyle.transform = matValue;\n\t\t\t\t\t\tcontainerStyle.webkitTransform = matValue;\n\t\t\t\t\t}\n\t\t\t\t\tif (this.pe._mdf) {\n\t\t\t\t\t\tperspectiveStyle = comp.perspectiveElem.style;\n\t\t\t\t\t\tperspectiveStyle.perspective = this.pe.v + 'px';\n\t\t\t\t\t\tperspectiveStyle.webkitPerspective = this.pe.v + 'px';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.mat.clone(this._prevMat);\n\t\t}\n\t}\n\tthis._isFirstFrame = false;\n};\n\nHCameraElement.prototype.prepareFrame = function (num) {\n\tthis.prepareProperties(num, true);\n};\n\nHCameraElement.prototype.destroy = function () {\n};\nHCameraElement.prototype.getBaseElement = function () { return null; };\n\nfunction HImageElement(data, globalData, comp) {\n\tthis.assetData = globalData.getAssetData(data.refId);\n\tthis.initElement(data, globalData, comp);\n}\n\nextendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\nHImageElement.prototype.createContent = function () {\n\tvar assetPath = this.globalData.getAssetsPath(this.assetData);\n\tvar img = new Image();\n\n\tif (this.data.hasMask) {\n\t\tthis.imageElem = createNS('image');\n\t\tthis.imageElem.setAttribute('width', this.assetData.w + 'px');\n\t\tthis.imageElem.setAttribute('height', this.assetData.h + 'px');\n\t\tthis.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n\t\tthis.layerElement.appendChild(this.imageElem);\n\t\tthis.baseElement.setAttribute('width', this.assetData.w);\n\t\tthis.baseElement.setAttribute('height', this.assetData.h);\n\t} else {\n\t\tthis.layerElement.appendChild(img);\n\t}\n\timg.crossOrigin = 'anonymous';\n\timg.src = assetPath;\n\tif (this.data.ln) {\n\t\tthis.baseElement.setAttribute('id', this.data.ln);\n\t}\n};\n\nfunction HybridRendererBase(animationItem, config) {\n\tthis.animationItem = animationItem;\n\tthis.layers = null;\n\tthis.renderedFrame = -1;\n\tthis.renderConfig = {\n\t\tclassName: (config && config.className) || '',\n\t\timagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\n\t\thideOnTransparent: !(config && config.hideOnTransparent === false),\n\t\tfilterSize: {\n\t\t\twidth: (config && config.filterSize && config.filterSize.width) || '400%',\n\t\t\theight: (config && config.filterSize && config.filterSize.height) || '400%',\n\t\t\tx: (config && config.filterSize && config.filterSize.x) || '-100%',\n\t\t\ty: (config && config.filterSize && config.filterSize.y) || '-100%',\n\t\t},\n\t};\n\tthis.globalData = {\n\t\t_mdf: false,\n\t\tframeNum: -1,\n\t\trenderConfig: this.renderConfig,\n\t};\n\tthis.pendingElements = [];\n\tthis.elements = [];\n\tthis.threeDElements = [];\n\tthis.destroyed = false;\n\tthis.camera = null;\n\tthis.supports3d = true;\n\tthis.rendererType = 'html';\n}\n\nextendPrototype([BaseRenderer], HybridRendererBase);\n\nHybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\nHybridRendererBase.prototype.checkPendingElements = function () {\n\twhile (this.pendingElements.length) {\n\t\tvar element = this.pendingElements.pop();\n\t\telement.checkParenting();\n\t}\n};\n\nHybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n\tvar newDOMElement = element.getBaseElement();\n\tif (!newDOMElement) {\n\t\treturn;\n\t}\n\tvar layer = this.layers[pos];\n\tif (!layer.ddd || !this.supports3d) {\n\t\tif (this.threeDElements) {\n\t\t\tthis.addTo3dContainer(newDOMElement, pos);\n\t\t} else {\n\t\t\tvar i = 0;\n\t\t\tvar nextDOMElement;\n\t\t\tvar nextLayer;\n\t\t\tvar tmpDOMElement;\n\t\t\twhile (i < pos) {\n\t\t\t\tif (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n\t\t\t\t\tnextLayer = this.elements[i];\n\t\t\t\t\ttmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n\t\t\t\t\tnextDOMElement = tmpDOMElement || nextDOMElement;\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tif (nextDOMElement) {\n\t\t\t\tif (!layer.ddd || !this.supports3d) {\n\t\t\t\t\tthis.layerElement.insertBefore(newDOMElement, nextDOMElement);\n\t\t\t\t}\n\t\t\t} else if (!layer.ddd || !this.supports3d) {\n\t\t\t\tthis.layerElement.appendChild(newDOMElement);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tthis.addTo3dContainer(newDOMElement, pos);\n\t}\n};\n\nHybridRendererBase.prototype.createShape = function (data) {\n\tif (!this.supports3d) {\n\t\treturn new SVGShapeElement(data, this.globalData, this);\n\t}\n\treturn new HShapeElement(data, this.globalData, this);\n};\n\nHybridRendererBase.prototype.createText = function (data) {\n\tif (!this.supports3d) {\n\t\treturn new SVGTextLottieElement(data, this.globalData, this);\n\t}\n\treturn new HTextElement(data, this.globalData, this);\n};\n\nHybridRendererBase.prototype.createCamera = function (data) {\n\tthis.camera = new HCameraElement(data, this.globalData, this);\n\treturn this.camera;\n};\n\nHybridRendererBase.prototype.createImage = function (data) {\n\tif (!this.supports3d) {\n\t\treturn new IImageElement(data, this.globalData, this);\n\t}\n\treturn new HImageElement(data, this.globalData, this);\n};\n\nHybridRendererBase.prototype.createSolid = function (data) {\n\tif (!this.supports3d) {\n\t\treturn new ISolidElement(data, this.globalData, this);\n\t}\n\treturn new HSolidElement(data, this.globalData, this);\n};\n\nHybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\nHybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n\tvar i = 0;\n\tvar len = this.threeDElements.length;\n\twhile (i < len) {\n\t\tif (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n\t\t\treturn this.threeDElements[i].perspectiveElem;\n\t\t}\n\t\ti += 1;\n\t}\n\treturn null;\n};\n\nHybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n\tvar perspectiveElem = createTag('div');\n\tvar style;\n\tvar containerStyle;\n\tstyleDiv(perspectiveElem);\n\tvar container = createTag('div');\n\tstyleDiv(container);\n\tif (type === '3d') {\n\t\tstyle = perspectiveElem.style;\n\t\tstyle.width = this.globalData.compSize.w + 'px';\n\t\tstyle.height = this.globalData.compSize.h + 'px';\n\t\tvar center = '50% 50%';\n\t\tstyle.webkitTransformOrigin = center;\n\t\tstyle.mozTransformOrigin = center;\n\t\tstyle.transformOrigin = center;\n\t\tcontainerStyle = container.style;\n\t\tvar matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n\t\tcontainerStyle.transform = matrix;\n\t\tcontainerStyle.webkitTransform = matrix;\n\t}\n\n\tperspectiveElem.appendChild(container);\n\t// this.resizerElem.appendChild(perspectiveElem);\n\tvar threeDContainerData = {\n\t\tcontainer: container,\n\t\tperspectiveElem: perspectiveElem,\n\t\tstartPos: pos,\n\t\tendPos: pos,\n\t\ttype: type,\n\t};\n\tthis.threeDElements.push(threeDContainerData);\n\treturn threeDContainerData;\n};\n\nHybridRendererBase.prototype.build3dContainers = function () {\n\tvar i;\n\tvar len = this.layers.length;\n\tvar lastThreeDContainerData;\n\tvar currentContainer = '';\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.layers[i].ddd && this.layers[i].ty !== 3) {\n\t\t\tif (currentContainer !== '3d') {\n\t\t\t\tcurrentContainer = '3d';\n\t\t\t\tlastThreeDContainerData = this.createThreeDContainer(i, '3d');\n\t\t\t}\n\t\t\tlastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n\t\t} else {\n\t\t\tif (currentContainer !== '2d') {\n\t\t\t\tcurrentContainer = '2d';\n\t\t\t\tlastThreeDContainerData = this.createThreeDContainer(i, '2d');\n\t\t\t}\n\t\t\tlastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n\t\t}\n\t}\n\tlen = this.threeDElements.length;\n\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\tthis.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n\t}\n};\n\nHybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n\tvar i = 0;\n\tvar len = this.threeDElements.length;\n\twhile (i < len) {\n\t\tif (pos <= this.threeDElements[i].endPos) {\n\t\t\tvar j = this.threeDElements[i].startPos;\n\t\t\tvar nextElement;\n\t\t\twhile (j < pos) {\n\t\t\t\tif (this.elements[j] && this.elements[j].getBaseElement) {\n\t\t\t\t\tnextElement = this.elements[j].getBaseElement();\n\t\t\t\t}\n\t\t\t\tj += 1;\n\t\t\t}\n\t\t\tif (nextElement) {\n\t\t\t\tthis.threeDElements[i].container.insertBefore(elem, nextElement);\n\t\t\t} else {\n\t\t\t\tthis.threeDElements[i].container.appendChild(elem);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t}\n};\n\nHybridRendererBase.prototype.configAnimation = function (animData) {\n\tvar resizerElem = createTag('div');\n\tvar wrapper = this.animationItem.wrapper;\n\tvar style = resizerElem.style;\n\tstyle.width = animData.w + 'px';\n\tstyle.height = animData.h + 'px';\n\tthis.resizerElem = resizerElem;\n\tstyleDiv(resizerElem);\n\tstyle.transformStyle = 'flat';\n\tstyle.mozTransformStyle = 'flat';\n\tstyle.webkitTransformStyle = 'flat';\n\tif (this.renderConfig.className) {\n\t\tresizerElem.setAttribute('class', this.renderConfig.className);\n\t}\n\twrapper.appendChild(resizerElem);\n\n\tstyle.overflow = 'hidden';\n\tvar svg = createNS('svg');\n\tsvg.setAttribute('width', '1');\n\tsvg.setAttribute('height', '1');\n\tstyleDiv(svg);\n\tthis.resizerElem.appendChild(svg);\n\tvar defs = createNS('defs');\n\tsvg.appendChild(defs);\n\tthis.data = animData;\n\t// Mask animation\n\tthis.setupGlobalData(animData, svg);\n\tthis.globalData.defs = defs;\n\tthis.layers = animData.layers;\n\tthis.layerElement = this.resizerElem;\n\tthis.build3dContainers();\n\tthis.updateContainerSize();\n};\n\nHybridRendererBase.prototype.destroy = function () {\n\tif (this.animationItem.wrapper) {\n\t\tthis.animationItem.wrapper.innerText = '';\n\t}\n\tthis.animationItem.container = null;\n\tthis.globalData.defs = null;\n\tvar i;\n\tvar len = this.layers ? this.layers.length : 0;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.elements[i].destroy();\n\t}\n\tthis.elements.length = 0;\n\tthis.destroyed = true;\n\tthis.animationItem = null;\n};\n\nHybridRendererBase.prototype.updateContainerSize = function () {\n\tvar elementWidth = this.animationItem.wrapper.offsetWidth;\n\tvar elementHeight = this.animationItem.wrapper.offsetHeight;\n\tvar elementRel = elementWidth / elementHeight;\n\tvar animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n\tvar sx;\n\tvar sy;\n\tvar tx;\n\tvar ty;\n\tif (animationRel > elementRel) {\n\t\tsx = elementWidth / (this.globalData.compSize.w);\n\t\tsy = elementWidth / (this.globalData.compSize.w);\n\t\ttx = 0;\n\t\tty = ((elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2);\n\t} else {\n\t\tsx = elementHeight / (this.globalData.compSize.h);\n\t\tsy = elementHeight / (this.globalData.compSize.h);\n\t\ttx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n\t\tty = 0;\n\t}\n\tvar style = this.resizerElem.style;\n\tstyle.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n\tstyle.transform = style.webkitTransform;\n};\n\nHybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\nHybridRendererBase.prototype.hide = function () {\n\tthis.resizerElem.style.display = 'none';\n};\n\nHybridRendererBase.prototype.show = function () {\n\tthis.resizerElem.style.display = 'block';\n};\n\nHybridRendererBase.prototype.initItems = function () {\n\tthis.buildAllItems();\n\tif (this.camera) {\n\t\tthis.camera.setup();\n\t} else {\n\t\tvar cWidth = this.globalData.compSize.w;\n\t\tvar cHeight = this.globalData.compSize.h;\n\t\tvar i;\n\t\tvar len = this.threeDElements.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tvar style = this.threeDElements[i].perspectiveElem.style;\n\t\t\tstyle.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n\t\t\tstyle.perspective = style.webkitPerspective;\n\t\t}\n\t}\n};\n\nHybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n\tvar i;\n\tvar len = assets.length;\n\tvar floatingContainer = createTag('div');\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (assets[i].xt) {\n\t\t\tvar comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n\t\t\tcomp.initExpressions();\n\t\t\tthis.globalData.projectInterface.registerComposition(comp);\n\t\t}\n\t}\n};\n\nfunction HCompElement(data, globalData, comp) {\n\tthis.layers = data.layers;\n\tthis.supports3d = !data.hasMask;\n\tthis.completeLayers = false;\n\tthis.pendingElements = [];\n\tthis.elements = this.layers ? createSizedArray(this.layers.length) : [];\n\tthis.initElement(data, globalData, comp);\n\tthis.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\n}\n\nextendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\nHCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\nHCompElement.prototype.createContainerElements = function () {\n\tthis._createBaseContainerElements();\n\t// divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\tif (this.data.hasMask) {\n\t\tthis.svgElement.setAttribute('width', this.data.w);\n\t\tthis.svgElement.setAttribute('height', this.data.h);\n\t\tthis.transformedElement = this.baseElement;\n\t} else {\n\t\tthis.transformedElement = this.layerElement;\n\t}\n};\n\nHCompElement.prototype.addTo3dContainer = function (elem, pos) {\n\tvar j = 0;\n\tvar nextElement;\n\twhile (j < pos) {\n\t\tif (this.elements[j] && this.elements[j].getBaseElement) {\n\t\t\tnextElement = this.elements[j].getBaseElement();\n\t\t}\n\t\tj += 1;\n\t}\n\tif (nextElement) {\n\t\tthis.layerElement.insertBefore(elem, nextElement);\n\t} else {\n\t\tthis.layerElement.appendChild(elem);\n\t}\n};\n\nHCompElement.prototype.createComp = function (data) {\n\tif (!this.supports3d) {\n\t\treturn new SVGCompElement(data, this.globalData, this);\n\t}\n\treturn new HCompElement(data, this.globalData, this);\n};\n\nfunction HybridRenderer(animationItem, config) {\n\tthis.animationItem = animationItem;\n\tthis.layers = null;\n\tthis.renderedFrame = -1;\n\tthis.renderConfig = {\n\t\tclassName: (config && config.className) || '',\n\t\timagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\n\t\thideOnTransparent: !(config && config.hideOnTransparent === false),\n\t\tfilterSize: {\n\t\t\twidth: (config && config.filterSize && config.filterSize.width) || '400%',\n\t\t\theight: (config && config.filterSize && config.filterSize.height) || '400%',\n\t\t\tx: (config && config.filterSize && config.filterSize.x) || '-100%',\n\t\t\ty: (config && config.filterSize && config.filterSize.y) || '-100%',\n\t\t},\n\t};\n\tthis.globalData = {\n\t\t_mdf: false,\n\t\tframeNum: -1,\n\t\trenderConfig: this.renderConfig,\n\t};\n\tthis.pendingElements = [];\n\tthis.elements = [];\n\tthis.threeDElements = [];\n\tthis.destroyed = false;\n\tthis.camera = null;\n\tthis.supports3d = true;\n\tthis.rendererType = 'html';\n}\n\nextendPrototype([HybridRendererBase], HybridRenderer);\n\nHybridRenderer.prototype.createComp = function (data) {\n\tif (!this.supports3d) {\n\t\treturn new SVGCompElement(data, this.globalData, this);\n\t}\n\treturn new HCompElement(data, this.globalData, this);\n};\n\nconst Expressions = (function () {\n\tvar ob = {};\n\tob.initExpressions = initExpressions;\n\n\tfunction initExpressions(animation) {\n\t\tvar stackCount = 0;\n\t\tvar registers = [];\n\n\t\tfunction pushExpression() {\n\t\t\tstackCount += 1;\n\t\t}\n\n\t\tfunction popExpression() {\n\t\t\tstackCount -= 1;\n\t\t\tif (stackCount === 0) {\n\t\t\t\treleaseInstances();\n\t\t\t}\n\t\t}\n\n\t\tfunction registerExpressionProperty(expression) {\n\t\t\tif (registers.indexOf(expression) === -1) {\n\t\t\t\tregisters.push(expression);\n\t\t\t}\n\t\t}\n\n\t\tfunction releaseInstances() {\n\t\t\tvar i;\n\t\t\tvar len = registers.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tregisters[i].release();\n\t\t\t}\n\t\t\tregisters.length = 0;\n\t\t}\n\n\t\tanimation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n\t\tanimation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n\t\tanimation.renderer.globalData.pushExpression = pushExpression;\n\t\tanimation.renderer.globalData.popExpression = popExpression;\n\t\tanimation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n\t}\n\treturn ob;\n}());\n\n/* eslint-disable */\n/*\n Copyright 2014 David Bau.\n\n Permission is hereby granted, free of charge, to any person obtaining\n a copy of this software and associated documentation files (the\n \"Software\"), to deal in the Software without restriction, including\n without limitation the rights to use, copy, modify, merge, publish,\n distribute, sublicense, and/or sell copies of the Software, and to\n permit persons to whom the Software is furnished to do so, subject to\n the following conditions:\n\n The above copyright notice and this permission notice shall be\n included in all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n */\n\nfunction seedRandom(pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\tvar global = this,\n\t\twidth = 256,        // each RC4 output is 0 <= x < 256\n\t\tchunks = 6,         // at least six RC4 outputs for each double\n\t\tdigits = 52,        // there are 52 significant digits in a double\n\t\trngname = 'random', // rngname: name for Math.random and Math.seedrandom\n\t\tstartdenom = math.pow(width, chunks),\n\t\tsignificance = math.pow(2, digits),\n\t\toverflow = significance * 2,\n\t\tmask = width - 1,\n\t\tnodecrypto;         // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\n\tfunction seedrandom(seed, options, callback) {\n\t\tvar key = [];\n\t\toptions = (options === true) ? { entropy: true } : (options || {});\n\n\t\t// Flatten the seed string or build one from local entropy if needed.\n\t\tvar shortseed = mixkey(flatten(\n\t\t\toptions.entropy ? [seed, tostring(pool)] :\n\t\t\t\t(seed === null) ? autoseed() : seed, 3), key);\n\n\t\t// Use the seed to initialize an ARC4 generator.\n\t\tvar arc4 = new ARC4(key);\n\n\t\t// This function returns a random double in [0, 1) that contains\n\t\t// randomness in every bit of the mantissa of the IEEE 754 value.\n\t\tvar prng = function() {\n\t\t\tvar n = arc4.g(chunks),             // Start with a numerator n < 2 ^ 48\n\t\t\t\td = startdenom,                 //   and denominator d = 2 ^ 48.\n\t\t\t\tx = 0;                          //   and no 'extra last byte'.\n\t\t\twhile (n < significance) {          // Fill up all significant digits by\n\t\t\t\tn = (n + x) * width;              //   shifting numerator and\n\t\t\t\td *= width;                       //   denominator and generating a\n\t\t\t\tx = arc4.g(1);                    //   new least-significant-byte.\n\t\t\t}\n\t\t\twhile (n >= overflow) {             // To avoid rounding up, before adding\n\t\t\t\tn /= 2;                           //   last byte, shift everything\n\t\t\t\td /= 2;                           //   right using integer math until\n\t\t\t\tx >>>= 1;                         //   we have exactly the desired bits.\n\t\t\t}\n\t\t\treturn (n + x) / d;                 // Form the number within [0, 1).\n\t\t};\n\n\t\tprng.int32 = function() { return arc4.g(4) | 0; };\n\t\tprng.quick = function() { return arc4.g(4) / 0x100000000; };\n\t\tprng.double = prng;\n\n\t\t// Mix the randomness into accumulated entropy.\n\t\tmixkey(tostring(arc4.S), pool);\n\n\t\t// Calling convention: what to return as a function of prng, seed, is_math.\n\t\treturn (options.pass || callback ||\n\t\t\tfunction(prng, seed, is_math_call, state) {\n\t\t\t\tif (state) {\n\t\t\t\t\t// Load the arc4 state from the given state if it has an S array.\n\t\t\t\t\tif (state.S) { copy(state, arc4); }\n\t\t\t\t\t// Only provide the .state method if requested via options.state.\n\t\t\t\t\tprng.state = function() { return copy(arc4, {}); };\n\t\t\t\t}\n\n\t\t\t\t// If called as a method of Math (Math.seedrandom()), mutate\n\t\t\t\t// Math.random because that is how seedrandom.js has worked since v1.0.\n\t\t\t\tif (is_math_call) { math[rngname] = prng; return seed; }\n\n\t\t\t\t\t// Otherwise, it is a newer calling convention, so return the\n\t\t\t\t// prng directly.\n\t\t\t\telse return prng;\n\t\t\t})(\n\t\t\tprng,\n\t\t\tshortseed,\n\t\t\t'global' in options ? options.global : (this == math),\n\t\t\toptions.state);\n\t}\n\tmath['seed' + rngname] = seedrandom;\n\n//\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\tfunction ARC4(key) {\n\t\tvar t, keylen = key.length,\n\t\t\tme = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n\t\t// The empty key [] is treated as [0].\n\t\tif (!keylen) { key = [keylen++]; }\n\n\t\t// Set up S using the standard key scheduling algorithm.\n\t\twhile (i < width) {\n\t\t\ts[i] = i++;\n\t\t}\n\t\tfor (i = 0; i < width; i++) {\n\t\t\ts[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n\t\t\ts[j] = t;\n\t\t}\n\n\t\t// The \"g\" method returns the next (count) outputs as one number.\n\t\tme.g = function(count) {\n\t\t\t// Using instance members instead of closure state nearly doubles speed.\n\t\t\tvar t, r = 0,\n\t\t\t\ti = me.i, j = me.j, s = me.S;\n\t\t\twhile (count--) {\n\t\t\t\tt = s[i = mask & (i + 1)];\n\t\t\t\tr = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n\t\t\t}\n\t\t\tme.i = i; me.j = j;\n\t\t\treturn r;\n\t\t\t// For robust unpredictability, the function call below automatically\n\t\t\t// discards an initial batch of values.  This is called RC4-drop[256].\n\t\t\t// See http://google.com/search?q=rsa+fluhrer+response&btnI\n\t\t};\n\t}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\n\tfunction copy(f, t) {\n\t\tt.i = f.i;\n\t\tt.j = f.j;\n\t\tt.S = f.S.slice();\n\t\treturn t;\n\t}\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\n\tfunction flatten(obj, depth) {\n\t\tvar result = [], typ = (typeof obj), prop;\n\t\tif (depth && typ == 'object') {\n\t\t\tfor (prop in obj) {\n\t\t\t\ttry { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n\t\t\t}\n\t\t}\n\t\treturn (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n\t}\n\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\tfunction mixkey(seed, key) {\n\t\tvar stringseed = seed + '', smear, j = 0;\n\t\twhile (j < stringseed.length) {\n\t\t\tkey[mask & j] =\n\t\t\t\tmask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n\t\t}\n\t\treturn tostring(key);\n\t}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\n\tfunction autoseed() {\n\t\ttry {\n\t\t\tif (nodecrypto) { return tostring(nodecrypto.randomBytes(width)); }\n\t\t\tvar out = new Uint8Array(width);\n\t\t\t(global.crypto || global.msCrypto).getRandomValues(out);\n\t\t\treturn tostring(out);\n\t\t} catch (e) {\n\t\t\tvar browser = global.navigator,\n\t\t\t\tplugins = browser && browser.plugins;\n\t\t\treturn [+new Date(), global, plugins, global.screen, tostring(pool)];\n\t\t}\n\t}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\n\tfunction tostring(a) {\n\t\treturn String.fromCharCode.apply(0, a);\n\t}\n\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\tmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\n\n// End anonymous scope, and pass initial values.\n};\n\nfunction initialize$2(BMMath) {\n\tseedRandom([], BMMath);\n}\n\nvar propTypes = {\n\tSHAPE: 'shape',\n};\n\n/* eslint-disable camelcase */\n\nconst ExpressionManager = (function () {\n\t'use strict';\n\n\tvar ob = {};\n\tvar Math = BMMath;\n\tvar window = null;\n\tvar document = null;\n\tvar XMLHttpRequest = null;\n\tvar fetch = null;\n\tvar frames = null;\n\tinitialize$2(BMMath);\n\n\tfunction $bm_isInstanceOfArray(arr) {\n\t\treturn arr.constructor === Array || arr.constructor === Float32Array;\n\t}\n\n\tfunction isNumerable(tOfV, v) {\n\t\treturn tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\n\t}\n\n\tfunction $bm_neg(a) {\n\t\tvar tOfA = typeof a;\n\t\tif (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\n\t\t\treturn -a;\n\t\t}\n\t\tif ($bm_isInstanceOfArray(a)) {\n\t\t\tvar i;\n\t\t\tvar lenA = a.length;\n\t\t\tvar retArr = [];\n\t\t\tfor (i = 0; i < lenA; i += 1) {\n\t\t\t\tretArr[i] = -a[i];\n\t\t\t}\n\t\t\treturn retArr;\n\t\t}\n\t\tif (a.propType) {\n\t\t\treturn a.v;\n\t\t}\n\t\treturn -a;\n\t}\n\n\tvar easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n\tvar easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n\tvar easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n\tfunction sum(a, b) {\n\t\tvar tOfA = typeof a;\n\t\tvar tOfB = typeof b;\n\t\tif (tOfA === 'string' || tOfB === 'string') {\n\t\t\treturn a + b;\n\t\t}\n\t\tif (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n\t\t\treturn a + b;\n\t\t}\n\t\tif ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n\t\t\ta = a.slice(0);\n\t\t\ta[0] += b;\n\t\t\treturn a;\n\t\t}\n\t\tif (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n\t\t\tb = b.slice(0);\n\t\t\tb[0] = a + b[0];\n\t\t\treturn b;\n\t\t}\n\t\tif ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n\t\t\tvar i = 0;\n\t\t\tvar lenA = a.length;\n\t\t\tvar lenB = b.length;\n\t\t\tvar retArr = [];\n\t\t\twhile (i < lenA || i < lenB) {\n\t\t\t\tif ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n\t\t\t\t\tretArr[i] = a[i] + b[i];\n\t\t\t\t} else {\n\t\t\t\t\tretArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\treturn retArr;\n\t\t}\n\t\treturn 0;\n\t}\n\tvar add = sum;\n\n\tfunction sub(a, b) {\n\t\tvar tOfA = typeof a;\n\t\tvar tOfB = typeof b;\n\t\tif (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n\t\t\tif (tOfA === 'string') {\n\t\t\t\ta = parseInt(a, 10);\n\t\t\t}\n\t\t\tif (tOfB === 'string') {\n\t\t\t\tb = parseInt(b, 10);\n\t\t\t}\n\t\t\treturn a - b;\n\t\t}\n\t\tif ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n\t\t\ta = a.slice(0);\n\t\t\ta[0] -= b;\n\t\t\treturn a;\n\t\t}\n\t\tif (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n\t\t\tb = b.slice(0);\n\t\t\tb[0] = a - b[0];\n\t\t\treturn b;\n\t\t}\n\t\tif ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n\t\t\tvar i = 0;\n\t\t\tvar lenA = a.length;\n\t\t\tvar lenB = b.length;\n\t\t\tvar retArr = [];\n\t\t\twhile (i < lenA || i < lenB) {\n\t\t\t\tif ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n\t\t\t\t\tretArr[i] = a[i] - b[i];\n\t\t\t\t} else {\n\t\t\t\t\tretArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\treturn retArr;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tfunction mul(a, b) {\n\t\tvar tOfA = typeof a;\n\t\tvar tOfB = typeof b;\n\t\tvar arr;\n\t\tif (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n\t\t\treturn a * b;\n\t\t}\n\n\t\tvar i;\n\t\tvar len;\n\t\tif ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n\t\t\tlen = a.length;\n\t\t\tarr = createTypedArray('float32', len);\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tarr[i] = a[i] * b;\n\t\t\t}\n\t\t\treturn arr;\n\t\t}\n\t\tif (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n\t\t\tlen = b.length;\n\t\t\tarr = createTypedArray('float32', len);\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tarr[i] = a * b[i];\n\t\t\t}\n\t\t\treturn arr;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tfunction div(a, b) {\n\t\tvar tOfA = typeof a;\n\t\tvar tOfB = typeof b;\n\t\tvar arr;\n\t\tif (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n\t\t\treturn a / b;\n\t\t}\n\t\tvar i;\n\t\tvar len;\n\t\tif ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n\t\t\tlen = a.length;\n\t\t\tarr = createTypedArray('float32', len);\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tarr[i] = a[i] / b;\n\t\t\t}\n\t\t\treturn arr;\n\t\t}\n\t\tif (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n\t\t\tlen = b.length;\n\t\t\tarr = createTypedArray('float32', len);\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tarr[i] = a / b[i];\n\t\t\t}\n\t\t\treturn arr;\n\t\t}\n\t\treturn 0;\n\t}\n\tfunction mod(a, b) {\n\t\tif (typeof a === 'string') {\n\t\t\ta = parseInt(a, 10);\n\t\t}\n\t\tif (typeof b === 'string') {\n\t\t\tb = parseInt(b, 10);\n\t\t}\n\t\treturn a % b;\n\t}\n\tvar $bm_sum = sum;\n\tvar $bm_sub = sub;\n\tvar $bm_mul = mul;\n\tvar $bm_div = div;\n\tvar $bm_mod = mod;\n\n\tfunction clamp(num, min, max) {\n\t\tif (min > max) {\n\t\t\tvar mm = max;\n\t\t\tmax = min;\n\t\t\tmin = mm;\n\t\t}\n\t\treturn Math.min(Math.max(num, min), max);\n\t}\n\n\tfunction radiansToDegrees(val) {\n\t\treturn val / degToRads;\n\t}\n\tvar radians_to_degrees = radiansToDegrees;\n\n\tfunction degreesToRadians(val) {\n\t\treturn val * degToRads;\n\t}\n\tvar degrees_to_radians = radiansToDegrees;\n\n\tvar helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n\tfunction length(arr1, arr2) {\n\t\tif (typeof arr1 === 'number' || arr1 instanceof Number) {\n\t\t\tarr2 = arr2 || 0;\n\t\t\treturn Math.abs(arr1 - arr2);\n\t\t}\n\t\tif (!arr2) {\n\t\t\tarr2 = helperLengthArray;\n\t\t}\n\t\tvar i;\n\t\tvar len = Math.min(arr1.length, arr2.length);\n\t\tvar addedLength = 0;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\taddedLength += Math.pow(arr2[i] - arr1[i], 2);\n\t\t}\n\t\treturn Math.sqrt(addedLength);\n\t}\n\n\tfunction normalize(vec) {\n\t\treturn div(vec, length(vec));\n\t}\n\n\tfunction rgbToHsl(val) {\n\t\tvar r = val[0]; var g = val[1]; var b = val[2];\n\t\tvar max = Math.max(r, g, b);\n\t\tvar min = Math.min(r, g, b);\n\t\tvar h;\n\t\tvar s;\n\t\tvar l = (max + min) / 2;\n\n\t\tif (max === min) {\n\t\t\th = 0; // achromatic\n\t\t\ts = 0; // achromatic\n\t\t} else {\n\t\t\tvar d = max - min;\n\t\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\t\t\tswitch (max) {\n\t\t\t\tcase r: h = (g - b) / d + (g < b ? 6 : 0); break;\n\t\t\t\tcase g: h = (b - r) / d + 2; break;\n\t\t\t\tcase b: h = (r - g) / d + 4; break;\n\t\t\t\tdefault: break;\n\t\t\t}\n\t\t\th /= 6;\n\t\t}\n\n\t\treturn [h, s, l, val[3]];\n\t}\n\n\tfunction hue2rgb(p, q, t) {\n\t\tif (t < 0) t += 1;\n\t\tif (t > 1) t -= 1;\n\t\tif (t < 1 / 6) return p + (q - p) * 6 * t;\n\t\tif (t < 1 / 2) return q;\n\t\tif (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n\t\treturn p;\n\t}\n\n\tfunction hslToRgb(val) {\n\t\tvar h = val[0];\n\t\tvar s = val[1];\n\t\tvar l = val[2];\n\n\t\tvar r;\n\t\tvar g;\n\t\tvar b;\n\n\t\tif (s === 0) {\n\t\t\tr = l; // achromatic\n\t\t\tb = l; // achromatic\n\t\t\tg = l; // achromatic\n\t\t} else {\n\t\t\tvar q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n\t\t\tvar p = 2 * l - q;\n\t\t\tr = hue2rgb(p, q, h + 1 / 3);\n\t\t\tg = hue2rgb(p, q, h);\n\t\t\tb = hue2rgb(p, q, h - 1 / 3);\n\t\t}\n\n\t\treturn [r, g, b, val[3]];\n\t}\n\n\tfunction linear(t, tMin, tMax, value1, value2) {\n\t\tif (value1 === undefined || value2 === undefined) {\n\t\t\tvalue1 = tMin;\n\t\t\tvalue2 = tMax;\n\t\t\ttMin = 0;\n\t\t\ttMax = 1;\n\t\t}\n\t\tif (tMax < tMin) {\n\t\t\tvar _tMin = tMax;\n\t\t\ttMax = tMin;\n\t\t\ttMin = _tMin;\n\t\t}\n\t\tif (t <= tMin) {\n\t\t\treturn value1;\n\t\t} if (t >= tMax) {\n\t\t\treturn value2;\n\t\t}\n\t\tvar perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\t\tif (!value1.length) {\n\t\t\treturn value1 + (value2 - value1) * perc;\n\t\t}\n\t\tvar i;\n\t\tvar len = value1.length;\n\t\tvar arr = createTypedArray('float32', len);\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tarr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n\t\t}\n\t\treturn arr;\n\t}\n\tfunction random(min, max) {\n\t\tif (max === undefined) {\n\t\t\tif (min === undefined) {\n\t\t\t\tmin = 0;\n\t\t\t\tmax = 1;\n\t\t\t} else {\n\t\t\t\tmax = min;\n\t\t\t\tmin = undefined;\n\t\t\t}\n\t\t}\n\t\tif (max.length) {\n\t\t\tvar i;\n\t\t\tvar len = max.length;\n\t\t\tif (!min) {\n\t\t\t\tmin = createTypedArray('float32', len);\n\t\t\t}\n\t\t\tvar arr = createTypedArray('float32', len);\n\t\t\tvar rnd = BMMath.random();\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tarr[i] = min[i] + rnd * (max[i] - min[i]);\n\t\t\t}\n\t\t\treturn arr;\n\t\t}\n\t\tif (min === undefined) {\n\t\t\tmin = 0;\n\t\t}\n\t\tvar rndm = BMMath.random();\n\t\treturn min + rndm * (max - min);\n\t}\n\n\tfunction createPath(points, inTangents, outTangents, closed) {\n\t\tvar i;\n\t\tvar len = points.length;\n\t\tvar path = shapePool.newElement();\n\t\tpath.setPathData(!!closed, len);\n\t\tvar arrPlaceholder = [0, 0];\n\t\tvar inVertexPoint;\n\t\tvar outVertexPoint;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tinVertexPoint = (inTangents && inTangents[i]) ? inTangents[i] : arrPlaceholder;\n\t\t\toutVertexPoint = (outTangents && outTangents[i]) ? outTangents[i] : arrPlaceholder;\n\t\t\tpath.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\t\t}\n\t\treturn path;\n\t}\n\n\tfunction initiateExpression(elem, data, property) {\n\t\tvar val = data.x;\n\t\tvar needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\t\tvar _needsRandom = val.indexOf('random') !== -1;\n\t\tvar elemType = elem.data.ty;\n\t\tvar transform;\n\t\tvar $bm_transform;\n\t\tvar content;\n\t\tvar effect;\n\t\tvar thisProperty = property;\n\t\tthisProperty.valueAtTime = thisProperty.getValueAtTime;\n\t\tObject.defineProperty(thisProperty, 'value', {\n\t\t\tget: function () {\n\t\t\t\treturn thisProperty.v;\n\t\t\t},\n\t\t});\n\t\telem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n\t\telem.comp.displayStartTime = 0;\n\t\tvar inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n\t\tvar outPoint = elem.data.op / elem.comp.globalData.frameRate;\n\t\tvar width = elem.data.sw ? elem.data.sw : 0;\n\t\tvar height = elem.data.sh ? elem.data.sh : 0;\n\t\tvar name = elem.data.nm;\n\t\tvar loopIn;\n\t\tvar loop_in;\n\t\tvar loopOut;\n\t\tvar loop_out;\n\t\tvar smooth;\n\t\tvar toWorld;\n\t\tvar fromWorld;\n\t\tvar fromComp;\n\t\tvar toComp;\n\t\tvar fromCompToSurface;\n\t\tvar position;\n\t\tvar rotation;\n\t\tvar anchorPoint;\n\t\tvar scale;\n\t\tvar thisLayer;\n\t\tvar thisComp;\n\t\tvar mask;\n\t\tvar valueAtTime;\n\t\tvar velocityAtTime;\n\n\t\tvar scoped_bm_rt;\n\t\t// val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\t\tvar expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\t\tvar numKeys = property.kf ? data.k.length : 0;\n\n\t\tvar active = !this.data || this.data.hd !== true;\n\n\t\tvar wiggle = function wiggle(freq, amp) {\n\t\t\tvar iWiggle;\n\t\t\tvar j;\n\t\t\tvar lenWiggle = this.pv.length ? this.pv.length : 1;\n\t\t\tvar addedAmps = createTypedArray('float32', lenWiggle);\n\t\t\tfreq = 5;\n\t\t\tvar iterations = Math.floor(time * freq);\n\t\t\tiWiggle = 0;\n\t\t\tj = 0;\n\t\t\twhile (iWiggle < iterations) {\n\t\t\t\t// var rnd = BMMath.random();\n\t\t\t\tfor (j = 0; j < lenWiggle; j += 1) {\n\t\t\t\t\taddedAmps[j] += -amp + amp * 2 * BMMath.random();\n\t\t\t\t\t// addedAmps[j] += -amp + amp*2*rnd;\n\t\t\t\t}\n\t\t\t\tiWiggle += 1;\n\t\t\t}\n\t\t\t// var rnd2 = BMMath.random();\n\t\t\tvar periods = time * freq;\n\t\t\tvar perc = periods - Math.floor(periods);\n\t\t\tvar arr = createTypedArray('float32', lenWiggle);\n\t\t\tif (lenWiggle > 1) {\n\t\t\t\tfor (j = 0; j < lenWiggle; j += 1) {\n\t\t\t\t\tarr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc;\n\t\t\t\t\t// arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n\t\t\t\t\t// arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n\t\t\t\t}\n\t\t\t\treturn arr;\n\t\t\t}\n\t\t\treturn this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n\t\t}.bind(this);\n\n\t\tif (thisProperty.loopIn) {\n\t\t\tloopIn = thisProperty.loopIn.bind(thisProperty);\n\t\t\tloop_in = loopIn;\n\t\t}\n\n\t\tif (thisProperty.loopOut) {\n\t\t\tloopOut = thisProperty.loopOut.bind(thisProperty);\n\t\t\tloop_out = loopOut;\n\t\t}\n\n\t\tif (thisProperty.smooth) {\n\t\t\tsmooth = thisProperty.smooth.bind(thisProperty);\n\t\t}\n\n\t\tfunction loopInDuration(type, duration) {\n\t\t\treturn loopIn(type, duration, true);\n\t\t}\n\n\t\tfunction loopOutDuration(type, duration) {\n\t\t\treturn loopOut(type, duration, true);\n\t\t}\n\n\t\tif (this.getValueAtTime) {\n\t\t\tvalueAtTime = this.getValueAtTime.bind(this);\n\t\t}\n\n\t\tif (this.getVelocityAtTime) {\n\t\t\tvelocityAtTime = this.getVelocityAtTime.bind(this);\n\t\t}\n\n\t\tvar comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n\t\tfunction lookAt(elem1, elem2) {\n\t\t\tvar fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n\t\t\tvar pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n\t\t\tvar yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n\t\t\treturn [yaw, pitch, 0];\n\t\t}\n\n\t\tfunction easeOut(t, tMin, tMax, val1, val2) {\n\t\t\treturn applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n\t\t}\n\n\t\tfunction easeIn(t, tMin, tMax, val1, val2) {\n\t\t\treturn applyEase(easeInBez, t, tMin, tMax, val1, val2);\n\t\t}\n\n\t\tfunction ease(t, tMin, tMax, val1, val2) {\n\t\t\treturn applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n\t\t}\n\n\t\tfunction applyEase(fn, t, tMin, tMax, val1, val2) {\n\t\t\tif (val1 === undefined) {\n\t\t\t\tval1 = tMin;\n\t\t\t\tval2 = tMax;\n\t\t\t} else {\n\t\t\t\tt = (t - tMin) / (tMax - tMin);\n\t\t\t}\n\t\t\tif (t > 1) {\n\t\t\t\tt = 1;\n\t\t\t} else if (t < 0) {\n\t\t\t\tt = 0;\n\t\t\t}\n\t\t\tvar mult = fn(t);\n\t\t\tif ($bm_isInstanceOfArray(val1)) {\n\t\t\t\tvar iKey;\n\t\t\t\tvar lenKey = val1.length;\n\t\t\t\tvar arr = createTypedArray('float32', lenKey);\n\t\t\t\tfor (iKey = 0; iKey < lenKey; iKey += 1) {\n\t\t\t\t\tarr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n\t\t\t\t}\n\t\t\t\treturn arr;\n\t\t\t}\n\t\t\treturn (val2 - val1) * mult + val1;\n\t\t}\n\n\t\tfunction nearestKey(time) {\n\t\t\tvar iKey;\n\t\t\tvar lenKey = data.k.length;\n\t\t\tvar index;\n\t\t\tvar keyTime;\n\t\t\tif (!data.k.length || typeof (data.k[0]) === 'number') {\n\t\t\t\tindex = 0;\n\t\t\t\tkeyTime = 0;\n\t\t\t} else {\n\t\t\t\tindex = -1;\n\t\t\t\ttime *= elem.comp.globalData.frameRate;\n\t\t\t\tif (time < data.k[0].t) {\n\t\t\t\t\tindex = 1;\n\t\t\t\t\tkeyTime = data.k[0].t;\n\t\t\t\t} else {\n\t\t\t\t\tfor (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n\t\t\t\t\t\tif (time === data.k[iKey].t) {\n\t\t\t\t\t\t\tindex = iKey + 1;\n\t\t\t\t\t\t\tkeyTime = data.k[iKey].t;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t} else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n\t\t\t\t\t\t\tif (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n\t\t\t\t\t\t\t\tindex = iKey + 2;\n\t\t\t\t\t\t\t\tkeyTime = data.k[iKey + 1].t;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tindex = iKey + 1;\n\t\t\t\t\t\t\t\tkeyTime = data.k[iKey].t;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (index === -1) {\n\t\t\t\t\t\tindex = iKey + 1;\n\t\t\t\t\t\tkeyTime = data.k[iKey].t;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar obKey = {};\n\t\t\tobKey.index = index;\n\t\t\tobKey.time = keyTime / elem.comp.globalData.frameRate;\n\t\t\treturn obKey;\n\t\t}\n\n\t\tfunction key(ind) {\n\t\t\tvar obKey;\n\t\t\tvar iKey;\n\t\t\tvar lenKey;\n\t\t\tif (!data.k.length || typeof (data.k[0]) === 'number') {\n\t\t\t\tthrow new Error('The property has no keyframe at index ' + ind);\n\t\t\t}\n\t\t\tind -= 1;\n\t\t\tobKey = {\n\t\t\t\ttime: data.k[ind].t / elem.comp.globalData.frameRate,\n\t\t\t\tvalue: [],\n\t\t\t};\n\t\t\tvar arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n\n\t\t\tlenKey = arr.length;\n\t\t\tfor (iKey = 0; iKey < lenKey; iKey += 1) {\n\t\t\t\tobKey[iKey] = arr[iKey];\n\t\t\t\tobKey.value[iKey] = arr[iKey];\n\t\t\t}\n\t\t\treturn obKey;\n\t\t}\n\n\t\tfunction framesToTime(fr, fps) {\n\t\t\tif (!fps) {\n\t\t\t\tfps = elem.comp.globalData.frameRate;\n\t\t\t}\n\t\t\treturn fr / fps;\n\t\t}\n\n\t\tfunction timeToFrames(t, fps) {\n\t\t\tif (!t && t !== 0) {\n\t\t\t\tt = time;\n\t\t\t}\n\t\t\tif (!fps) {\n\t\t\t\tfps = elem.comp.globalData.frameRate;\n\t\t\t}\n\t\t\treturn t * fps;\n\t\t}\n\n\t\tfunction seedRandom(seed) {\n\t\t\tBMMath.seedrandom(randSeed + seed);\n\t\t}\n\n\t\tfunction sourceRectAtTime() {\n\t\t\treturn elem.sourceRectAtTime();\n\t\t}\n\n\t\tfunction substring(init, end) {\n\t\t\tif (typeof value === 'string') {\n\t\t\t\tif (end === undefined) {\n\t\t\t\t\treturn value.substring(init);\n\t\t\t\t}\n\t\t\t\treturn value.substring(init, end);\n\t\t\t}\n\t\t\treturn '';\n\t\t}\n\n\t\tfunction substr(init, end) {\n\t\t\tif (typeof value === 'string') {\n\t\t\t\tif (end === undefined) {\n\t\t\t\t\treturn value.substr(init);\n\t\t\t\t}\n\t\t\t\treturn value.substr(init, end);\n\t\t\t}\n\t\t\treturn '';\n\t\t}\n\n\t\tfunction posterizeTime(framesPerSecond) {\n\t\t\ttime = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n\t\t\tvalue = valueAtTime(time);\n\t\t}\n\n\t\tvar time;\n\t\tvar velocity;\n\t\tvar value;\n\t\tvar text;\n\t\tvar textIndex;\n\t\tvar textTotal;\n\t\tvar selectorValue;\n\t\tvar index = elem.data.ind;\n\t\tvar hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\t\tvar parent;\n\t\tvar randSeed = Math.floor(Math.random() * 1000000);\n\t\tvar globalData = elem.globalData;\n\t\tfunction executeExpression(_value) {\n\t\t\t// globalData.pushExpression();\n\t\t\tvalue = _value;\n\t\t\tif (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (this.propType === 'textSelector') {\n\t\t\t\ttextIndex = this.textIndex;\n\t\t\t\ttextTotal = this.textTotal;\n\t\t\t\tselectorValue = this.selectorValue;\n\t\t\t}\n\t\t\tif (!thisLayer) {\n\t\t\t\ttext = elem.layerInterface.text;\n\t\t\t\tthisLayer = elem.layerInterface;\n\t\t\t\tthisComp = elem.comp.compInterface;\n\t\t\t\ttoWorld = thisLayer.toWorld.bind(thisLayer);\n\t\t\t\tfromWorld = thisLayer.fromWorld.bind(thisLayer);\n\t\t\t\tfromComp = thisLayer.fromComp.bind(thisLayer);\n\t\t\t\ttoComp = thisLayer.toComp.bind(thisLayer);\n\t\t\t\tmask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n\t\t\t\tfromCompToSurface = fromComp;\n\t\t\t}\n\t\t\tif (!transform) {\n\t\t\t\ttransform = elem.layerInterface('ADBE Transform Group');\n\t\t\t\t$bm_transform = transform;\n\t\t\t\tif (transform) {\n\t\t\t\t\tanchorPoint = transform.anchorPoint;\n\t\t\t\t\t/* position = transform.position;\n                    rotation = transform.rotation;\n                    scale = transform.scale; */\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (elemType === 4 && !content) {\n\t\t\t\tcontent = thisLayer('ADBE Root Vectors Group');\n\t\t\t}\n\t\t\tif (!effect) {\n\t\t\t\teffect = thisLayer(4);\n\t\t\t}\n\t\t\thasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\t\t\tif (hasParent && !parent) {\n\t\t\t\tparent = elem.hierarchy[0].layerInterface;\n\t\t\t}\n\t\t\ttime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\t\t\tif (_needsRandom) {\n\t\t\t\tseedRandom(randSeed + time);\n\t\t\t}\n\t\t\tif (needsVelocity) {\n\t\t\t\tvelocity = velocityAtTime(time);\n\t\t\t}\n\t\t\texpression_function();\n\t\t\tthis.frameExpressionId = elem.globalData.frameId;\n\n\t\t\t// TODO: Check if it's possible to return on ShapeInterface the .v value\n\t\t\t// Changed this to a ternary operation because Rollup failed compiling it correctly\n\t\t\tscoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE\n\t\t\t\t? scoped_bm_rt.v\n\t\t\t\t: scoped_bm_rt;\n\t\t\treturn scoped_bm_rt;\n\t\t}\n\t\t// Bundlers will see these as dead code and unless we reference them\n\t\texecuteExpression.__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\t\treturn executeExpression;\n\t}\n\n\tob.initiateExpression = initiateExpression;\n\tob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath];\n\treturn ob;\n}());\n\nconst expressionHelpers = (function () {\n\tfunction searchExpressions(elem, data, prop) {\n\t\tif (data.x) {\n\t\t\tprop.k = true;\n\t\t\tprop.x = true;\n\t\t\tprop.initiateExpression = ExpressionManager.initiateExpression;\n\t\t\tprop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n\t\t}\n\t}\n\n\tfunction getValueAtTime(frameNum) {\n\t\tframeNum *= this.elem.globalData.frameRate;\n\t\tframeNum -= this.offsetTime;\n\t\tif (frameNum !== this._cachingAtTime.lastFrame) {\n\t\t\tthis._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n\t\t\tthis._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n\t\t\tthis._cachingAtTime.lastFrame = frameNum;\n\t\t}\n\t\treturn this._cachingAtTime.value;\n\t}\n\n\tfunction getSpeedAtTime(frameNum) {\n\t\tvar delta = -0.01;\n\t\tvar v1 = this.getValueAtTime(frameNum);\n\t\tvar v2 = this.getValueAtTime(frameNum + delta);\n\t\tvar speed = 0;\n\t\tif (v1.length) {\n\t\t\tvar i;\n\t\t\tfor (i = 0; i < v1.length; i += 1) {\n\t\t\t\tspeed += Math.pow(v2[i] - v1[i], 2);\n\t\t\t}\n\t\t\tspeed = Math.sqrt(speed) * 100;\n\t\t} else {\n\t\t\tspeed = 0;\n\t\t}\n\t\treturn speed;\n\t}\n\n\tfunction getVelocityAtTime(frameNum) {\n\t\tif (this.vel !== undefined) {\n\t\t\treturn this.vel;\n\t\t}\n\t\tvar delta = -0.001;\n\t\t// frameNum += this.elem.data.st;\n\t\tvar v1 = this.getValueAtTime(frameNum);\n\t\tvar v2 = this.getValueAtTime(frameNum + delta);\n\t\tvar velocity;\n\t\tif (v1.length) {\n\t\t\tvelocity = createTypedArray('float32', v1.length);\n\t\t\tvar i;\n\t\t\tfor (i = 0; i < v1.length; i += 1) {\n\t\t\t\t// removing frameRate\n\t\t\t\t// if needed, don't add it here\n\t\t\t\t// velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n\t\t\t\tvelocity[i] = (v2[i] - v1[i]) / delta;\n\t\t\t}\n\t\t} else {\n\t\t\tvelocity = (v2 - v1) / delta;\n\t\t}\n\t\treturn velocity;\n\t}\n\n\tfunction getStaticValueAtTime() {\n\t\treturn this.pv;\n\t}\n\n\tfunction setGroupProperty(propertyGroup) {\n\t\tthis.propertyGroup = propertyGroup;\n\t}\n\n\treturn {\n\t\tsearchExpressions: searchExpressions,\n\t\tgetSpeedAtTime: getSpeedAtTime,\n\t\tgetVelocityAtTime: getVelocityAtTime,\n\t\tgetValueAtTime: getValueAtTime,\n\t\tgetStaticValueAtTime: getStaticValueAtTime,\n\t\tsetGroupProperty: setGroupProperty,\n\t};\n}());\n\nfunction addPropertyDecorator() {\n\tfunction loopOut(type, duration, durationFlag) {\n\t\tif (!this.k || !this.keyframes) {\n\t\t\treturn this.pv;\n\t\t}\n\t\ttype = type ? type.toLowerCase() : '';\n\t\tvar currentFrame = this.comp.renderedFrame;\n\t\tvar keyframes = this.keyframes;\n\t\tvar lastKeyFrame = keyframes[keyframes.length - 1].t;\n\t\tif (currentFrame <= lastKeyFrame) {\n\t\t\treturn this.pv;\n\t\t}\n\t\tvar cycleDuration;\n\t\tvar firstKeyFrame;\n\t\tif (!durationFlag) {\n\t\t\tif (!duration || duration > keyframes.length - 1) {\n\t\t\t\tduration = keyframes.length - 1;\n\t\t\t}\n\t\t\tfirstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n\t\t\tcycleDuration = lastKeyFrame - firstKeyFrame;\n\t\t} else {\n\t\t\tif (!duration) {\n\t\t\t\tcycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n\t\t\t} else {\n\t\t\t\tcycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n\t\t\t}\n\t\t\tfirstKeyFrame = lastKeyFrame - cycleDuration;\n\t\t}\n\t\tvar i;\n\t\tvar len;\n\t\tvar ret;\n\t\tif (type === 'pingpong') {\n\t\t\tvar iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\t\t\tif (iterations % 2 !== 0) {\n\t\t\t\treturn this.getValueAtTime(((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\t\t\t}\n\t\t} else if (type === 'offset') {\n\t\t\tvar initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n\t\t\tvar endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n\t\t\tvar current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\t\t\tvar repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\t\t\tif (this.pv.length) {\n\t\t\t\tret = new Array(initV.length);\n\t\t\t\tlen = ret.length;\n\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\tret[i] = (endV[i] - initV[i]) * repeats + current[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\treturn (endV - initV) * repeats + current;\n\t\t} else if (type === 'continue') {\n\t\t\tvar lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n\t\t\tvar nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\t\t\tif (this.pv.length) {\n\t\t\t\tret = new Array(lastValue.length);\n\t\t\t\tlen = ret.length;\n\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\tret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\treturn lastValue + (lastValue - nextLastValue) * (((currentFrame - lastKeyFrame)) / 0.001);\n\t\t}\n\t\treturn this.getValueAtTime((((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n\t}\n\n\tfunction loopIn(type, duration, durationFlag) {\n\t\tif (!this.k) {\n\t\t\treturn this.pv;\n\t\t}\n\t\ttype = type ? type.toLowerCase() : '';\n\t\tvar currentFrame = this.comp.renderedFrame;\n\t\tvar keyframes = this.keyframes;\n\t\tvar firstKeyFrame = keyframes[0].t;\n\t\tif (currentFrame >= firstKeyFrame) {\n\t\t\treturn this.pv;\n\t\t}\n\t\tvar cycleDuration;\n\t\tvar lastKeyFrame;\n\t\tif (!durationFlag) {\n\t\t\tif (!duration || duration > keyframes.length - 1) {\n\t\t\t\tduration = keyframes.length - 1;\n\t\t\t}\n\t\t\tlastKeyFrame = keyframes[duration].t;\n\t\t\tcycleDuration = lastKeyFrame - firstKeyFrame;\n\t\t} else {\n\t\t\tif (!duration) {\n\t\t\t\tcycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n\t\t\t} else {\n\t\t\t\tcycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n\t\t\t}\n\t\t\tlastKeyFrame = firstKeyFrame + cycleDuration;\n\t\t}\n\t\tvar i;\n\t\tvar len;\n\t\tvar ret;\n\t\tif (type === 'pingpong') {\n\t\t\tvar iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\t\t\tif (iterations % 2 === 0) {\n\t\t\t\treturn this.getValueAtTime((((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\t\t\t}\n\t\t} else if (type === 'offset') {\n\t\t\tvar initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n\t\t\tvar endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n\t\t\tvar current = this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration) + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n\t\t\tvar repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\t\t\tif (this.pv.length) {\n\t\t\t\tret = new Array(initV.length);\n\t\t\t\tlen = ret.length;\n\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\tret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\treturn current - (endV - initV) * repeats;\n\t\t} else if (type === 'continue') {\n\t\t\tvar firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n\t\t\tvar nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\t\t\tif (this.pv.length) {\n\t\t\t\tret = new Array(firstValue.length);\n\t\t\t\tlen = ret.length;\n\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\tret[i] = firstValue[i] + ((firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame)) / 0.001;\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\treturn firstValue + ((firstValue - nextFirstValue) * (firstKeyFrame - currentFrame)) / 0.001;\n\t\t}\n\t\treturn this.getValueAtTime(((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame))) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n\t}\n\n\tfunction smooth(width, samples) {\n\t\tif (!this.k) {\n\t\t\treturn this.pv;\n\t\t}\n\t\twidth = (width || 0.4) * 0.5;\n\t\tsamples = Math.floor(samples || 5);\n\t\tif (samples <= 1) {\n\t\t\treturn this.pv;\n\t\t}\n\t\tvar currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\t\tvar initFrame = currentTime - width;\n\t\tvar endFrame = currentTime + width;\n\t\tvar sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n\t\tvar i = 0;\n\t\tvar j = 0;\n\t\tvar value;\n\t\tif (this.pv.length) {\n\t\t\tvalue = createTypedArray('float32', this.pv.length);\n\t\t} else {\n\t\t\tvalue = 0;\n\t\t}\n\t\tvar sampleValue;\n\t\twhile (i < samples) {\n\t\t\tsampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\t\t\tif (this.pv.length) {\n\t\t\t\tfor (j = 0; j < this.pv.length; j += 1) {\n\t\t\t\t\tvalue[j] += sampleValue[j];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvalue += sampleValue;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\tif (this.pv.length) {\n\t\t\tfor (j = 0; j < this.pv.length; j += 1) {\n\t\t\t\tvalue[j] /= samples;\n\t\t\t}\n\t\t} else {\n\t\t\tvalue /= samples;\n\t\t}\n\t\treturn value;\n\t}\n\n\tfunction getTransformValueAtTime(time) {\n\t\tif (!this._transformCachingAtTime) {\n\t\t\tthis._transformCachingAtTime = {\n\t\t\t\tv: new Matrix(),\n\t\t\t};\n\t\t}\n\t\t/// /\n\t\tvar matrix = this._transformCachingAtTime.v;\n\t\tmatrix.cloneFromProps(this.pre.props);\n\t\tif (this.appliedTransformations < 1) {\n\t\t\tvar anchor = this.a.getValueAtTime(time);\n\t\t\tmatrix.translate(\n\t\t\t\t-anchor[0] * this.a.mult,\n\t\t\t\t-anchor[1] * this.a.mult,\n\t\t\t\tanchor[2] * this.a.mult\n\t\t\t);\n\t\t}\n\t\tif (this.appliedTransformations < 2) {\n\t\t\tvar scale = this.s.getValueAtTime(time);\n\t\t\tmatrix.scale(\n\t\t\t\tscale[0] * this.s.mult,\n\t\t\t\tscale[1] * this.s.mult,\n\t\t\t\tscale[2] * this.s.mult\n\t\t\t);\n\t\t}\n\t\tif (this.sk && this.appliedTransformations < 3) {\n\t\t\tvar skew = this.sk.getValueAtTime(time);\n\t\t\tvar skewAxis = this.sa.getValueAtTime(time);\n\t\t\tmatrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n\t\t}\n\t\tif (this.r && this.appliedTransformations < 4) {\n\t\t\tvar rotation = this.r.getValueAtTime(time);\n\t\t\tmatrix.rotate(-rotation * this.r.mult);\n\t\t} else if (!this.r && this.appliedTransformations < 4) {\n\t\t\tvar rotationZ = this.rz.getValueAtTime(time);\n\t\t\tvar rotationY = this.ry.getValueAtTime(time);\n\t\t\tvar rotationX = this.rx.getValueAtTime(time);\n\t\t\tvar orientation = this.or.getValueAtTime(time);\n\t\t\tmatrix.rotateZ(-rotationZ * this.rz.mult)\n\t\t\t\t.rotateY(rotationY * this.ry.mult)\n\t\t\t\t.rotateX(rotationX * this.rx.mult)\n\t\t\t\t.rotateZ(-orientation[2] * this.or.mult)\n\t\t\t\t.rotateY(orientation[1] * this.or.mult)\n\t\t\t\t.rotateX(orientation[0] * this.or.mult);\n\t\t}\n\t\tif (this.data.p && this.data.p.s) {\n\t\t\tvar positionX = this.px.getValueAtTime(time);\n\t\t\tvar positionY = this.py.getValueAtTime(time);\n\t\t\tif (this.data.p.z) {\n\t\t\t\tvar positionZ = this.pz.getValueAtTime(time);\n\t\t\t\tmatrix.translate(\n\t\t\t\t\tpositionX * this.px.mult,\n\t\t\t\t\tpositionY * this.py.mult,\n\t\t\t\t\t-positionZ * this.pz.mult\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmatrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n\t\t\t}\n\t\t} else {\n\t\t\tvar position = this.p.getValueAtTime(time);\n\t\t\tmatrix.translate(\n\t\t\t\tposition[0] * this.p.mult,\n\t\t\t\tposition[1] * this.p.mult,\n\t\t\t\t-position[2] * this.p.mult\n\t\t\t);\n\t\t}\n\t\treturn matrix;\n\t\t/// /\n\t}\n\n\tfunction getTransformStaticValueAtTime() {\n\t\treturn this.v.clone(new Matrix());\n\t}\n\n\tvar getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\tTransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n\t\tvar prop = getTransformProperty(elem, data, container);\n\t\tif (prop.dynamicProperties.length) {\n\t\t\tprop.getValueAtTime = getTransformValueAtTime.bind(prop);\n\t\t} else {\n\t\t\tprop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n\t\t}\n\t\tprop.setGroupProperty = expressionHelpers.setGroupProperty;\n\t\treturn prop;\n\t};\n\n\tvar propertyGetProp = PropertyFactory.getProp;\n\tPropertyFactory.getProp = function (elem, data, type, mult, container) {\n\t\tvar prop = propertyGetProp(elem, data, type, mult, container);\n\t\t// prop.getVelocityAtTime = getVelocityAtTime;\n\t\t// prop.loopOut = loopOut;\n\t\t// prop.loopIn = loopIn;\n\t\tif (prop.kf) {\n\t\t\tprop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n\t\t} else {\n\t\t\tprop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n\t\t}\n\t\tprop.setGroupProperty = expressionHelpers.setGroupProperty;\n\t\tprop.loopOut = loopOut;\n\t\tprop.loopIn = loopIn;\n\t\tprop.smooth = smooth;\n\t\tprop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n\t\tprop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n\t\tprop.numKeys = data.a === 1 ? data.k.length : 0;\n\t\tprop.propertyIndex = data.ix;\n\t\tvar value = 0;\n\t\tif (type !== 0) {\n\t\t\tvalue = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n\t\t}\n\t\tprop._cachingAtTime = {\n\t\t\tlastFrame: initialDefaultFrame,\n\t\t\tlastIndex: 0,\n\t\t\tvalue: value,\n\t\t};\n\t\texpressionHelpers.searchExpressions(elem, data, prop);\n\t\tif (prop.k) {\n\t\t\tcontainer.addDynamicProperty(prop);\n\t\t}\n\n\t\treturn prop;\n\t};\n\n\tfunction getShapeValueAtTime(frameNum) {\n\t\t// For now this caching object is created only when needed instead of creating it when the shape is initialized.\n\t\tif (!this._cachingAtTime) {\n\t\t\tthis._cachingAtTime = {\n\t\t\t\tshapeValue: shapePool.clone(this.pv),\n\t\t\t\tlastIndex: 0,\n\t\t\t\tlastTime: initialDefaultFrame,\n\t\t\t};\n\t\t}\n\n\t\tframeNum *= this.elem.globalData.frameRate;\n\t\tframeNum -= this.offsetTime;\n\t\tif (frameNum !== this._cachingAtTime.lastTime) {\n\t\t\tthis._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n\t\t\tthis._cachingAtTime.lastTime = frameNum;\n\t\t\tthis.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n\t\t}\n\t\treturn this._cachingAtTime.shapeValue;\n\t}\n\n\tvar ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n\tvar KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n\tfunction ShapeExpressions() {}\n\tShapeExpressions.prototype = {\n\t\tvertices: function (prop, time) {\n\t\t\tif (this.k) {\n\t\t\t\tthis.getValue();\n\t\t\t}\n\t\t\tvar shapePath = this.v;\n\t\t\tif (time !== undefined) {\n\t\t\t\tshapePath = this.getValueAtTime(time, 0);\n\t\t\t}\n\t\t\tvar i;\n\t\t\tvar len = shapePath._length;\n\t\t\tvar vertices = shapePath[prop];\n\t\t\tvar points = shapePath.v;\n\t\t\tvar arr = createSizedArray(len);\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tif (prop === 'i' || prop === 'o') {\n\t\t\t\t\tarr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n\t\t\t\t} else {\n\t\t\t\t\tarr[i] = [vertices[i][0], vertices[i][1]];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn arr;\n\t\t},\n\t\tpoints: function (time) {\n\t\t\treturn this.vertices('v', time);\n\t\t},\n\t\tinTangents: function (time) {\n\t\t\treturn this.vertices('i', time);\n\t\t},\n\t\toutTangents: function (time) {\n\t\t\treturn this.vertices('o', time);\n\t\t},\n\t\tisClosed: function () {\n\t\t\treturn this.v.c;\n\t\t},\n\t\tpointOnPath: function (perc, time) {\n\t\t\tvar shapePath = this.v;\n\t\t\tif (time !== undefined) {\n\t\t\t\tshapePath = this.getValueAtTime(time, 0);\n\t\t\t}\n\t\t\tif (!this._segmentsLength) {\n\t\t\t\tthis._segmentsLength = bez.getSegmentsLength(shapePath);\n\t\t\t}\n\n\t\t\tvar segmentsLength = this._segmentsLength;\n\t\t\tvar lengths = segmentsLength.lengths;\n\t\t\tvar lengthPos = segmentsLength.totalLength * perc;\n\t\t\tvar i = 0;\n\t\t\tvar len = lengths.length;\n\t\t\tvar accumulatedLength = 0;\n\t\t\tvar pt;\n\t\t\twhile (i < len) {\n\t\t\t\tif (accumulatedLength + lengths[i].addedLength > lengthPos) {\n\t\t\t\t\tvar initIndex = i;\n\t\t\t\t\tvar endIndex = (shapePath.c && i === len - 1) ? 0 : i + 1;\n\t\t\t\t\tvar segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n\t\t\t\t\tpt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\taccumulatedLength += lengths[i].addedLength;\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tif (!pt) {\n\t\t\t\tpt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n\t\t\t}\n\t\t\treturn pt;\n\t\t},\n\t\tvectorOnPath: function (perc, time, vectorType) {\n\t\t\t// perc doesn't use triple equality because it can be a Number object as well as a primitive.\n\t\t\tif (perc == 1) { // eslint-disable-line eqeqeq\n\t\t\t\tperc = this.v.c;\n\t\t\t} else if (perc == 0) { // eslint-disable-line eqeqeq\n\t\t\t\tperc = 0.999;\n\t\t\t}\n\t\t\tvar pt1 = this.pointOnPath(perc, time);\n\t\t\tvar pt2 = this.pointOnPath(perc + 0.001, time);\n\t\t\tvar xLength = pt2[0] - pt1[0];\n\t\t\tvar yLength = pt2[1] - pt1[1];\n\t\t\tvar magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\t\t\tif (magnitude === 0) {\n\t\t\t\treturn [0, 0];\n\t\t\t}\n\t\t\tvar unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n\t\t\treturn unitVector;\n\t\t},\n\t\ttangentOnPath: function (perc, time) {\n\t\t\treturn this.vectorOnPath(perc, time, 'tangent');\n\t\t},\n\t\tnormalOnPath: function (perc, time) {\n\t\t\treturn this.vectorOnPath(perc, time, 'normal');\n\t\t},\n\t\tsetGroupProperty: expressionHelpers.setGroupProperty,\n\t\tgetValueAtTime: expressionHelpers.getStaticValueAtTime,\n\t};\n\textendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n\textendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n\tKeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n\tKeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n\n\tvar propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\tShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n\t\tvar prop = propertyGetShapeProp(elem, data, type, arr, trims);\n\t\tprop.propertyIndex = data.ix;\n\t\tprop.lock = false;\n\t\tif (type === 3) {\n\t\t\texpressionHelpers.searchExpressions(elem, data.pt, prop);\n\t\t} else if (type === 4) {\n\t\t\texpressionHelpers.searchExpressions(elem, data.ks, prop);\n\t\t}\n\t\tif (prop.k) {\n\t\t\telem.addDynamicProperty(prop);\n\t\t}\n\t\treturn prop;\n\t};\n}\n\nfunction initialize$1() {\n\taddPropertyDecorator();\n}\n\nfunction addDecorator() {\n\tfunction searchExpressions() {\n\t\tif (this.data.d.x) {\n\t\t\tthis.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n\t\t\tthis.addEffect(this.getExpressionValue.bind(this));\n\t\t\treturn true;\n\t\t}\n\t\treturn null;\n\t}\n\n\tTextProperty.prototype.getExpressionValue = function (currentValue, text) {\n\t\tvar newValue = this.calculateExpression(text);\n\t\tif (currentValue.t !== newValue) {\n\t\t\tvar newData = {};\n\t\t\tthis.copyData(newData, currentValue);\n\t\t\tnewData.t = newValue.toString();\n\t\t\tnewData.__complete = false;\n\t\t\treturn newData;\n\t\t}\n\t\treturn currentValue;\n\t};\n\n\tTextProperty.prototype.searchProperty = function () {\n\t\tvar isKeyframed = this.searchKeyframes();\n\t\tvar hasExpressions = this.searchExpressions();\n\t\tthis.kf = isKeyframed || hasExpressions;\n\t\treturn this.kf;\n\t};\n\n\tTextProperty.prototype.searchExpressions = searchExpressions;\n}\n\nfunction initialize() {\n\taddDecorator();\n}\n\nfunction SVGComposableEffect() {\n\n}\nSVGComposableEffect.prototype = {\n\tcreateMergeNode: (resultId, ins) => {\n\t\tvar feMerge = createNS('feMerge');\n\t\tfeMerge.setAttribute('result', resultId);\n\t\tvar feMergeNode;\n\t\tvar i;\n\t\tfor (i = 0; i < ins.length; i += 1) {\n\t\t\tfeMergeNode = createNS('feMergeNode');\n\t\t\tfeMergeNode.setAttribute('in', ins[i]);\n\t\t\tfeMerge.appendChild(feMergeNode);\n\t\t\tfeMerge.appendChild(feMergeNode);\n\t\t}\n\t\treturn feMerge;\n\t},\n};\n\nfunction SVGTintFilter(filter, filterManager, elem, id, source) {\n\tthis.filterManager = filterManager;\n\tvar feColorMatrix = createNS('feColorMatrix');\n\tfeColorMatrix.setAttribute('type', 'matrix');\n\tfeColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n\tfeColorMatrix.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\tfeColorMatrix.setAttribute('result', id + '_tint_1');\n\tfilter.appendChild(feColorMatrix);\n\tfeColorMatrix = createNS('feColorMatrix');\n\tfeColorMatrix.setAttribute('type', 'matrix');\n\tfeColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n\tfeColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n\tfeColorMatrix.setAttribute('result', id + '_tint_2');\n\tfilter.appendChild(feColorMatrix);\n\tthis.matrixFilter = feColorMatrix;\n\tvar feMerge = this.createMergeNode(\n\t\tid,\n\t\t[\n\t\t\tsource,\n\t\t\tid + '_tint_1',\n\t\t\tid + '_tint_2',\n\t\t]\n\t);\n\tfilter.appendChild(feMerge);\n}\nextendPrototype([SVGComposableEffect], SVGTintFilter);\n\nSVGTintFilter.prototype.renderFrame = function (forceRender) {\n\tif (forceRender || this.filterManager._mdf) {\n\t\tvar colorBlack = this.filterManager.effectElements[0].p.v;\n\t\tvar colorWhite = this.filterManager.effectElements[1].p.v;\n\t\tvar opacity = this.filterManager.effectElements[2].p.v / 100;\n\t\tthis.matrixFilter.setAttribute('values', (colorWhite[0] - colorBlack[0]) + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 ' + opacity + ' 0');\n\t}\n};\n\nfunction SVGFillFilter(filter, filterManager, elem, id) {\n\tthis.filterManager = filterManager;\n\tvar feColorMatrix = createNS('feColorMatrix');\n\tfeColorMatrix.setAttribute('type', 'matrix');\n\tfeColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n\tfeColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n\tfeColorMatrix.setAttribute('result', id);\n\tfilter.appendChild(feColorMatrix);\n\tthis.matrixFilter = feColorMatrix;\n}\n\nSVGFillFilter.prototype.renderFrame = function (forceRender) {\n\tif (forceRender || this.filterManager._mdf) {\n\t\tvar color = this.filterManager.effectElements[2].p.v;\n\t\tvar opacity = this.filterManager.effectElements[6].p.v;\n\t\tthis.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\t}\n};\n\nfunction SVGStrokeEffect(fil, filterManager, elem) {\n\tthis.initialized = false;\n\tthis.filterManager = filterManager;\n\tthis.elem = elem;\n\tthis.paths = [];\n}\n\nSVGStrokeEffect.prototype.initialize = function () {\n\tvar elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\tvar path;\n\tvar groupPath;\n\tvar i;\n\tvar len;\n\tif (this.filterManager.effectElements[1].p.v === 1) {\n\t\tlen = this.elem.maskManager.masksProperties.length;\n\t\ti = 0;\n\t} else {\n\t\ti = this.filterManager.effectElements[0].p.v - 1;\n\t\tlen = i + 1;\n\t}\n\tgroupPath = createNS('g');\n\tgroupPath.setAttribute('fill', 'none');\n\tgroupPath.setAttribute('stroke-linecap', 'round');\n\tgroupPath.setAttribute('stroke-dashoffset', 1);\n\tfor (i; i < len; i += 1) {\n\t\tpath = createNS('path');\n\t\tgroupPath.appendChild(path);\n\t\tthis.paths.push({ p: path, m: i });\n\t}\n\tif (this.filterManager.effectElements[10].p.v === 3) {\n\t\tvar mask = createNS('mask');\n\t\tvar id = createElementID();\n\t\tmask.setAttribute('id', id);\n\t\tmask.setAttribute('mask-type', 'alpha');\n\t\tmask.appendChild(groupPath);\n\t\tthis.elem.globalData.defs.appendChild(mask);\n\t\tvar g = createNS('g');\n\t\tg.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\t\twhile (elemChildren[0]) {\n\t\t\tg.appendChild(elemChildren[0]);\n\t\t}\n\t\tthis.elem.layerElement.appendChild(g);\n\t\tthis.masker = mask;\n\t\tgroupPath.setAttribute('stroke', '#fff');\n\t} else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n\t\tif (this.filterManager.effectElements[10].p.v === 2) {\n\t\t\telemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\t\t\twhile (elemChildren.length) {\n\t\t\t\tthis.elem.layerElement.removeChild(elemChildren[0]);\n\t\t\t}\n\t\t}\n\t\tthis.elem.layerElement.appendChild(groupPath);\n\t\tthis.elem.layerElement.removeAttribute('mask');\n\t\tgroupPath.setAttribute('stroke', '#fff');\n\t}\n\tthis.initialized = true;\n\tthis.pathMasker = groupPath;\n};\n\nSVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n\tif (!this.initialized) {\n\t\tthis.initialize();\n\t}\n\tvar i;\n\tvar len = this.paths.length;\n\tvar mask;\n\tvar path;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.paths[i].m !== -1) {\n\t\t\tmask = this.elem.maskManager.viewData[this.paths[i].m];\n\t\t\tpath = this.paths[i].p;\n\t\t\tif (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n\t\t\t\tpath.setAttribute('d', mask.lastPath);\n\t\t\t}\n\t\t\tif (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\t\t\t\tvar dasharrayValue;\n\t\t\t\tif (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n\t\t\t\t\tvar s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n\t\t\t\t\tvar e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n\t\t\t\t\tvar l = path.getTotalLength();\n\t\t\t\t\tdasharrayValue = '0 0 0 ' + l * s + ' ';\n\t\t\t\t\tvar lineLength = l * (e - s);\n\t\t\t\t\tvar segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n\t\t\t\t\tvar units = Math.floor(lineLength / segment);\n\t\t\t\t\tvar j;\n\t\t\t\t\tfor (j = 0; j < units; j += 1) {\n\t\t\t\t\t\tdasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n\t\t\t\t\t}\n\t\t\t\t\tdasharrayValue += '0 ' + l * 10 + ' 0 0';\n\t\t\t\t} else {\n\t\t\t\t\tdasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n\t\t\t\t}\n\t\t\t\tpath.setAttribute('stroke-dasharray', dasharrayValue);\n\t\t\t}\n\t\t}\n\t}\n\tif (forceRender || this.filterManager.effectElements[4].p._mdf) {\n\t\tthis.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n\t}\n\n\tif (forceRender || this.filterManager.effectElements[6].p._mdf) {\n\t\tthis.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n\t}\n\tif (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n\t\tif (forceRender || this.filterManager.effectElements[3].p._mdf) {\n\t\t\tvar color = this.filterManager.effectElements[3].p.v;\n\t\t\tthis.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n\t\t}\n\t}\n};\n\nfunction SVGTritoneFilter(filter, filterManager, elem, id) {\n\tthis.filterManager = filterManager;\n\tvar feColorMatrix = createNS('feColorMatrix');\n\tfeColorMatrix.setAttribute('type', 'matrix');\n\tfeColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n\tfeColorMatrix.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\tfilter.appendChild(feColorMatrix);\n\tvar feComponentTransfer = createNS('feComponentTransfer');\n\tfeComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n\tfeComponentTransfer.setAttribute('result', id);\n\tthis.matrixFilter = feComponentTransfer;\n\tvar feFuncR = createNS('feFuncR');\n\tfeFuncR.setAttribute('type', 'table');\n\tfeComponentTransfer.appendChild(feFuncR);\n\tthis.feFuncR = feFuncR;\n\tvar feFuncG = createNS('feFuncG');\n\tfeFuncG.setAttribute('type', 'table');\n\tfeComponentTransfer.appendChild(feFuncG);\n\tthis.feFuncG = feFuncG;\n\tvar feFuncB = createNS('feFuncB');\n\tfeFuncB.setAttribute('type', 'table');\n\tfeComponentTransfer.appendChild(feFuncB);\n\tthis.feFuncB = feFuncB;\n\tfilter.appendChild(feComponentTransfer);\n}\n\nSVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n\tif (forceRender || this.filterManager._mdf) {\n\t\tvar color1 = this.filterManager.effectElements[0].p.v;\n\t\tvar color2 = this.filterManager.effectElements[1].p.v;\n\t\tvar color3 = this.filterManager.effectElements[2].p.v;\n\t\tvar tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n\t\tvar tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n\t\tvar tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n\t\tthis.feFuncR.setAttribute('tableValues', tableR);\n\t\tthis.feFuncG.setAttribute('tableValues', tableG);\n\t\tthis.feFuncB.setAttribute('tableValues', tableB);\n\t}\n};\n\nfunction SVGProLevelsFilter(filter, filterManager, elem, id) {\n\tthis.filterManager = filterManager;\n\tvar effectElements = this.filterManager.effectElements;\n\tvar feComponentTransfer = createNS('feComponentTransfer');\n\n\t// Red\n\tif (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\t\tthis.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n\t}\n\t// Green\n\tif (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\t\tthis.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n\t}\n\t// Blue\n\tif (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\t\tthis.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n\t}\n\t// Alpha\n\tif (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\t\tthis.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n\t}\n\t// RGB\n\tif (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n\t\tfeComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n\t\tfilter.appendChild(feComponentTransfer);\n\t}\n\n\tif (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\t\tfeComponentTransfer = createNS('feComponentTransfer');\n\t\tfeComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n\t\tfeComponentTransfer.setAttribute('result', id);\n\t\tfilter.appendChild(feComponentTransfer);\n\t\tthis.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n\t\tthis.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n\t\tthis.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n\t}\n}\n\nSVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n\tvar feFunc = createNS(type);\n\tfeFunc.setAttribute('type', 'table');\n\tfeComponentTransfer.appendChild(feFunc);\n\treturn feFunc;\n};\n\nSVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n\tvar cnt = 0;\n\tvar segments = 256;\n\tvar perc;\n\tvar min = Math.min(inputBlack, inputWhite);\n\tvar max = Math.max(inputBlack, inputWhite);\n\tvar table = Array.call(null, { length: segments });\n\tvar colorValue;\n\tvar pos = 0;\n\tvar outputDelta = outputWhite - outputBlack;\n\tvar inputDelta = inputWhite - inputBlack;\n\twhile (cnt <= 256) {\n\t\tperc = cnt / 256;\n\t\tif (perc <= min) {\n\t\t\tcolorValue = inputDelta < 0 ? outputWhite : outputBlack;\n\t\t} else if (perc >= max) {\n\t\t\tcolorValue = inputDelta < 0 ? outputBlack : outputWhite;\n\t\t} else {\n\t\t\tcolorValue = (outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma));\n\t\t}\n\t\ttable[pos] = colorValue;\n\t\tpos += 1;\n\t\tcnt += 256 / (segments - 1);\n\t}\n\treturn table.join(' ');\n};\n\nSVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n\tif (forceRender || this.filterManager._mdf) {\n\t\tvar val;\n\t\tvar effectElements = this.filterManager.effectElements;\n\t\tif (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n\t\t\tval = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n\t\t\tthis.feFuncRComposed.setAttribute('tableValues', val);\n\t\t\tthis.feFuncGComposed.setAttribute('tableValues', val);\n\t\t\tthis.feFuncBComposed.setAttribute('tableValues', val);\n\t\t}\n\n\t\tif (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n\t\t\tval = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n\t\t\tthis.feFuncR.setAttribute('tableValues', val);\n\t\t}\n\n\t\tif (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n\t\t\tval = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n\t\t\tthis.feFuncG.setAttribute('tableValues', val);\n\t\t}\n\n\t\tif (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n\t\t\tval = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n\t\t\tthis.feFuncB.setAttribute('tableValues', val);\n\t\t}\n\n\t\tif (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n\t\t\tval = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n\t\t\tthis.feFuncA.setAttribute('tableValues', val);\n\t\t}\n\t}\n};\n\nfunction SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n\tvar globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n\tvar filterSize = filterManager.data.fs || globalFilterSize;\n\tfilter.setAttribute('x', filterSize.x || globalFilterSize.x);\n\tfilter.setAttribute('y', filterSize.y || globalFilterSize.y);\n\tfilter.setAttribute('width', filterSize.width || globalFilterSize.width);\n\tfilter.setAttribute('height', filterSize.height || globalFilterSize.height);\n\tthis.filterManager = filterManager;\n\n\tvar feGaussianBlur = createNS('feGaussianBlur');\n\tfeGaussianBlur.setAttribute('in', 'SourceAlpha');\n\tfeGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n\tfeGaussianBlur.setAttribute('stdDeviation', '0');\n\tthis.feGaussianBlur = feGaussianBlur;\n\tfilter.appendChild(feGaussianBlur);\n\n\tvar feOffset = createNS('feOffset');\n\tfeOffset.setAttribute('dx', '25');\n\tfeOffset.setAttribute('dy', '0');\n\tfeOffset.setAttribute('in', id + '_drop_shadow_1');\n\tfeOffset.setAttribute('result', id + '_drop_shadow_2');\n\tthis.feOffset = feOffset;\n\tfilter.appendChild(feOffset);\n\tvar feFlood = createNS('feFlood');\n\tfeFlood.setAttribute('flood-color', '#00ff00');\n\tfeFlood.setAttribute('flood-opacity', '1');\n\tfeFlood.setAttribute('result', id + '_drop_shadow_3');\n\tthis.feFlood = feFlood;\n\tfilter.appendChild(feFlood);\n\n\tvar feComposite = createNS('feComposite');\n\tfeComposite.setAttribute('in', id + '_drop_shadow_3');\n\tfeComposite.setAttribute('in2', id + '_drop_shadow_2');\n\tfeComposite.setAttribute('operator', 'in');\n\tfeComposite.setAttribute('result', id + '_drop_shadow_4');\n\tfilter.appendChild(feComposite);\n\n\tvar feMerge = this.createMergeNode(\n\t\tid,\n\t\t[\n\t\t\tid + '_drop_shadow_4',\n\t\t\tsource,\n\t\t]\n\t);\n\tfilter.appendChild(feMerge);\n\t//\n}\nextendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\nSVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n\tif (forceRender || this.filterManager._mdf) {\n\t\tif (forceRender || this.filterManager.effectElements[4].p._mdf) {\n\t\t\tthis.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n\t\t}\n\t\tif (forceRender || this.filterManager.effectElements[0].p._mdf) {\n\t\t\tvar col = this.filterManager.effectElements[0].p.v;\n\t\t\tthis.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n\t\t}\n\t\tif (forceRender || this.filterManager.effectElements[1].p._mdf) {\n\t\t\tthis.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n\t\t}\n\t\tif (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n\t\t\tvar distance = this.filterManager.effectElements[3].p.v;\n\t\t\tvar angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n\t\t\tvar x = distance * Math.cos(angle);\n\t\t\tvar y = distance * Math.sin(angle);\n\t\t\tthis.feOffset.setAttribute('dx', x);\n\t\t\tthis.feOffset.setAttribute('dy', y);\n\t\t}\n\t}\n};\n\nvar _svgMatteSymbols = [];\n\nfunction SVGMatte3Effect(filterElem, filterManager, elem) {\n\tthis.initialized = false;\n\tthis.filterManager = filterManager;\n\tthis.filterElem = filterElem;\n\tthis.elem = elem;\n\telem.matteElement = createNS('g');\n\telem.matteElement.appendChild(elem.layerElement);\n\telem.matteElement.appendChild(elem.transformedElement);\n\telem.baseElement = elem.matteElement;\n}\n\nSVGMatte3Effect.prototype.findSymbol = function (mask) {\n\tvar i = 0;\n\tvar len = _svgMatteSymbols.length;\n\twhile (i < len) {\n\t\tif (_svgMatteSymbols[i] === mask) {\n\t\t\treturn _svgMatteSymbols[i];\n\t\t}\n\t\ti += 1;\n\t}\n\treturn null;\n};\n\nSVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n\tvar parentNode = mask.layerElement.parentNode;\n\tif (!parentNode) {\n\t\treturn;\n\t}\n\tvar children = parentNode.children;\n\tvar i = 0;\n\tvar len = children.length;\n\twhile (i < len) {\n\t\tif (children[i] === mask.layerElement) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t}\n\tvar nextChild;\n\tif (i <= len - 2) {\n\t\tnextChild = children[i + 1];\n\t}\n\tvar useElem = createNS('use');\n\tuseElem.setAttribute('href', '#' + symbolId);\n\tif (nextChild) {\n\t\tparentNode.insertBefore(useElem, nextChild);\n\t} else {\n\t\tparentNode.appendChild(useElem);\n\t}\n};\n\nSVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n\tif (!this.findSymbol(mask)) {\n\t\tvar symbolId = createElementID();\n\t\tvar masker = createNS('mask');\n\t\tmasker.setAttribute('id', mask.layerId);\n\t\tmasker.setAttribute('mask-type', 'alpha');\n\t\t_svgMatteSymbols.push(mask);\n\t\tvar defs = elem.globalData.defs;\n\t\tdefs.appendChild(masker);\n\t\tvar symbol = createNS('symbol');\n\t\tsymbol.setAttribute('id', symbolId);\n\t\tthis.replaceInParent(mask, symbolId);\n\t\tsymbol.appendChild(mask.layerElement);\n\t\tdefs.appendChild(symbol);\n\t\tvar useElem = createNS('use');\n\t\tuseElem.setAttribute('href', '#' + symbolId);\n\t\tmasker.appendChild(useElem);\n\t\tmask.data.hd = false;\n\t\tmask.show();\n\t}\n\telem.setMatte(mask.layerId);\n};\n\nSVGMatte3Effect.prototype.initialize = function () {\n\tvar ind = this.filterManager.effectElements[0].p.v;\n\tvar elements = this.elem.comp.elements;\n\tvar i = 0;\n\tvar len = elements.length;\n\twhile (i < len) {\n\t\tif (elements[i] && elements[i].data.ind === ind) {\n\t\t\tthis.setElementAsMask(this.elem, elements[i]);\n\t\t}\n\t\ti += 1;\n\t}\n\tthis.initialized = true;\n};\n\nSVGMatte3Effect.prototype.renderFrame = function () {\n\tif (!this.initialized) {\n\t\tthis.initialize();\n\t}\n};\n\nfunction SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n\t// Outset the filter region by 100% on all sides to accommodate blur expansion.\n\tfilter.setAttribute('x', '-100%');\n\tfilter.setAttribute('y', '-100%');\n\tfilter.setAttribute('width', '300%');\n\tfilter.setAttribute('height', '300%');\n\n\tthis.filterManager = filterManager;\n\tvar feGaussianBlur = createNS('feGaussianBlur');\n\tfeGaussianBlur.setAttribute('result', id);\n\tfilter.appendChild(feGaussianBlur);\n\tthis.feGaussianBlur = feGaussianBlur;\n}\n\nSVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n\tif (forceRender || this.filterManager._mdf) {\n\t\t// Empirical value, matching AE's blur appearance.\n\t\tvar kBlurrinessToSigma = 0.3;\n\t\tvar sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma;\n\n\t\t// Dimensions mapping:\n\t\t//\n\t\t//   1 -> horizontal & vertical\n\t\t//   2 -> horizontal only\n\t\t//   3 -> vertical only\n\t\t//\n\t\tvar dimensions = this.filterManager.effectElements[1].p.v;\n\t\tvar sigmaX = (dimensions == 3) ? 0 : sigma; // eslint-disable-line eqeqeq\n\t\tvar sigmaY = (dimensions == 2) ? 0 : sigma; // eslint-disable-line eqeqeq\n\n\t\tthis.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY);\n\n\t\t// Repeat edges mapping:\n\t\t//\n\t\t//   0 -> off -> duplicate\n\t\t//   1 -> on  -> wrap\n\t\tvar edgeMode = (this.filterManager.effectElements[2].p.v == 1) ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\t\tthis.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n\t}\n};\n\n// Registering renderers\nregisterRenderer('canvas', CanvasRenderer);\nregisterRenderer('html', HybridRenderer);\nregisterRenderer('svg', SVGRenderer);\n\n// Registering shape modifiers\nShapeModifiers.registerModifier('tm', TrimModifier);\nShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\nShapeModifiers.registerModifier('rp', RepeaterModifier);\nShapeModifiers.registerModifier('rd', RoundCornersModifier);\n\n// Registering expression plugin\nsetExpressionsPlugin(Expressions);\ninitialize$1();\ninitialize();\n\n// Registering svg effects\nregisterEffect(20, SVGTintFilter, true);\nregisterEffect(21, SVGFillFilter, true);\nregisterEffect(22, SVGStrokeEffect, false);\nregisterEffect(23, SVGTritoneFilter, true);\nregisterEffect(24, SVGProLevelsFilter, true);\nregisterEffect(25, SVGDropShadowEffect, true);\nregisterEffect(28, SVGMatte3Effect, false);\nregisterEffect(29, SVGGaussianBlurEffect, true);\n\nexport { lottie as Lottie };"],"names":["flag","_useWebWorker","value","locationHref","type","createElement","sources","destination","length","i","len","sourcePrototype","prototype","Object","hasOwnProperty","call","attr","object","prop","getOwnPropertyDescriptor","ProxyFunction","audioFactory","audios","_volume","_isMuted","AudioController","addAudio","audio","push","pause","resume","setRate","rateValue","createAudio","assetPath","window","Howl","src","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","arr","apply","test","navigator","userAgent","Math","pow","sqrt","floor","max","min","propertyNames","BMMath","random","abs","val","tOfVal","createSizedArray","absArr","PI","element","style","position","top","left","display","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","currentTime","totalTime","frameMultiplier","direction","totalLoops","currentLoop","firstFrame","totalFrames","target","nativeError","_count","h","s","v","f","p","q","t","r","g","b","d","color","offset","RGBtoHSV","hsv","hex","toString","colorMap","subframeEnabled","expressionsPlugin","defaultCurveSegments","idPrefix$1","createElementNS","svgNS","onmessage","postMessage","path","workerFn","data","workerProxy","fn","Worker","Blob","getWebWorker","URL","createObjectURL","blob","url","workerInstance","createWorker","e","layers","comps","layerData","completed","tt","td","hasMask","masksProperties","jLen","maskProps","j","pt","k","convertPathsToAbsoluteValues","kLen","ty","findCompLayers","refId","completeLayers","completeShapes","shapes","completeText","chars","assets","id","findComp","comp","__used","parse","JSON","stringify","ks","it","o","minimum","animVersionString","split","animVersion","textLayer","documentData","updateTextLayer","animationData","checkVersion","minimumVersion","iterateLayers","charData","ip","op","st","sr","a","sk","sa","pathData","iterateShapes","c","closed","completeClosingShapes","cl","__complete","checkColors","checkText","checkChars","checkPathProperties","checkShapes","completeChars","moduleOb","completeData","_workerSelf","dataManager","dataFunctionManager","assetLoader","xhr","getResponseHeader","contentTypeHeader","responseType","indexOf","response","responseText","fullPath","callback","errorCallback","err","onreadystatechange","readyState","status","formatResponse","open","error","send","load","loadAsset","payload","animation","event","processes","process","onComplete","onError","_counterId","setupWorker","createProcess","location","origin","pathname","processId","anim","loadAnimation","loadData","completeAnimation","createTag","canvas","width","height","getContext","ctx","fillStyle","fillRect","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","assetData","assetsPath","originalPath","imagePath","u","img","setInterval","getBBox","box","_imageLoaded","clearInterval","intervalId","bind","getAssetsPath","createNS","isSafari","testImageLoaded","addEventListener","ob","proxyImage","setAttributeNS","_elementHelper","append","appendChild","crossOrigin","footageData","_footageLoaded","cb","images","_createImageData","createFootageData","elementHelper","createImageData","createImgData","imageLoaded","footageLoaded","ImagePreloaderFactory","loadAssets","setAssetsPath","setPath","loadedImages","loadedFootages","destroy","getAsset","setCacheType","BaseEvent","triggerEvent","eventName","args","_cbs","callbacks","removeEventListener","splice","lines","line","keys","trim","keysCount","_markers","time","_marker","tm","duration","dr","markerData","cm","_","parsePayloadLines","__","name","markers","compositions","nm","prepareFrame","xt","currentFrame","compInterface","_thisProjectFunction","registerComposition","key","renderers","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","autoplay","loop","renderer","animationID","createElementID","timeCompleted","segmentPos","isSubframeEnabled","getSubframeEnabled","segments","_idle","_completedLoop","projectInterface","ProjectInterface","imagePreloader","audioController","audioControllerFactory","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","extendPrototype","AnimationItem","setParams","params","wrapper","container","animType","getRenderer","rendererSettings","globalData","defs","setProjectInterface","undefined","parseInt","autoloadSegments","initialSegment","setupAnimation","lastIndexOf","substr","fileName","trigger","setData","attributes","wrapperAttributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","getExpressionsPlugin","initExpressions","loadNextSegment","shift","segment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","round","fr","searchExtraCompositions","markerParser","updaFrameModifier","waitForFontsLoaded","triggerConfigError","setTimeout","rendererType","initItems","gotoFrame","resize","updateContainerSize","setSubframe","renderFrame","triggerRenderFrameError","togglePause","stop","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","Number","isNaN","numValue","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","checkSegments","_isComplete","adjustSegment","setSpeed","setDirection","setSegment","init","end","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","getPath","getAssetData","hide","show","getDuration","updateDocumentData","index","getElementByPath","ev","registeredAnimations","animItem","subtractPlayingCount","elem","lenAnims","animations","playingAnimationsNum","activate","removeElement","addPlayingCount","nowTime","initTime","elapsedTime","_isFrozen","requestAnimationFrame","_stopped","standalone","concat","slice","document","getElementsByClassName","animElements","setAttribute","registerAnimation","getElementsByTagName","body","innerText","div","first","searchAnimations","freeze","unfreeze","getRegisteredAnimations","getBezierEasing","replace","beziers","str","bezEasing","kSplineTableSize","aA1","aA2","aT","A","B","C","aX","aA","aB","mX1","mX2","currentT","currentX","calcBezier","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","aGuessT","NEWTON_ITERATIONS","getSlope","currentSlope","points","_p","_mSampleValues","float32ArraySupported","_precomputed","get","BezierEasing","x","mY1","mY2","_precompute","_getTForX","_calcSampleValues","kSampleStepSize","mSampleValues","currentSample","lastSample","intervalStart","dist","guessForT","initialSlope","NEWTON_MIN_SLOPE","double","initialLength","_create","_release","_maxLength","newElement","release","_length","pool","pooling","addedLength","percents","createTypedArray","getDefaultCurveSegments","lengths","create","totalLength","bezierLengthPool","x1","y1","x2","y2","x3","y3","det1","z1","z2","z3","math","dist1","dist2","dist3","diffDist","pt1","pt2","pt3","pt4","curveSegments","perc","ptDistance","ptCoord","bmPow","point","lastPoint","bmSqrt","lengthData","shapeData","segmentsLengthPool","segmentsLength","getBezierLength","pathV","pathO","pathI","segmentLength","partial","partialLength","storedData","bezierName","pointOnLine2D","bezierData","bmFloor","initPos","lengthPos","lPerc","dir","percent","getDistancePerc","t1","u1","ptX","ptY","startPerc","endPerc","t0","u0","bezierSegmentPoints","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getSegmentsLength","getNewSegment","getPointInSegment","buildBezierData","pointOnLine3D","bezFunction","initialDefaultFrame","frameNum","caching","offsetTime","propType","newValue","pv","lastIndex","iterationIndex","keyframes","keyData","nextKeyData","keyframeMetadata","keyframesMetadata","to","bez","ti","nextKeyTime","keyTime","ind","__fnct","fnc","BezierFactory","y","n","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","distanceInLine","segmentPerc","endValue","sh","createQuaternion","quaternionToEuler","slerp","quatStart","quatEnd","constructor","Array","outX","outY","inX","inY","keyValue","cosom","ax","bx","ay","by","az","bz","aw","bw","omega","acos","sinom","sin","scale0","scale1","out","quat","atan2","qy","qw","qx","qz","asin","heading","degToRads","attitude","bank","values","cos","c1","c2","c3","s1","s2","s3","z","w","renderedFrame","_caching","initFrame","endTime","interpolateValue","renderResult","multipliedValue","mult","mathAbs","_mdf","frameId","effectsSequence","lock","setVValue","_isFirstFrame","kf","finalValue","effectFunction","addDynamicProperty","vel","getValue","processEffectsSequence","addEffect","getValueAtCurrentTime","arrLen","getProp","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","ShapePath","setPathData","setLength","pointPool","doubleArrayLength","setXYAt","pos","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","inPoints","outPoints","cnt","shapePath","shape","factory","cloned","poolFactory","clone","ShapeCollection","addShape","releaseShapes","shapePool","newShapeCollection","shapeCollection","previousValue","keyPropS","isHold","keyPropE","vertexValue","interpolateShape","paths","localShapeCollection","shape1","shape2","shapesEqual","shapeCollectionPool","reset","resetShape","ShapeProperty","interpolateShapeCurrentTime","KeyframedShapeProperty","roundCorner","PropertyFactory","convertEllToPath","EllShapePropertyFactory","_v","p0","p1","_cw","s0","cPoint","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","StarShapePropertyFactory","numPts","longRad","shortRad","currentAng","rad","longFlag","roundness","longRound","shortRound","perimSegment","longPerimSegment","shortPerimSegment","ox","oy","angle","convertRectToPath","RectShapePropertyFactory","bmMin","v0","v1","dataProp","getShapeProp","getConstructorFunction","getKeyframedConstructorFunction","tan","props","_cos","_sin","_t","mCos","mSin","sx","shear","_tan","sz","l","m","tx","tz","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","_identity","matr","determinant","inverseMatrix","getInverseMatrix","applyToPointArray","pts","retPts","inversePoint","isIdentity","p4","p12","p5","p13","cssValue","_rnd","roundMatrixProperty","_a","_b","_c","_d","_e","_f","rotate","rotateX","rotateY","rotateZ","skew","skewFromAxis","scale","setTransform","translate","transform","applyToPoint","applyToX","applyToY","applyToZ","applyToTriplePoints","applyToPointStringified","toCSS","to2dCSS","cloneFromProps","equals","inversePoints","lottie","href","setLocationHref","animationManager","setSubframeEnabled","prefix","setIdPrefix","setDefaultCurveSegments","plugin","setExpressionsPlugin","setLocation","setSubframeRendering","setQuality","inBrowser","installPlugin","useWebWorker","setWebWorker","setIDPrefix","setPrefix","__getFactory","getFactory","version","readyStateCheckInterval","variable","queryString","vars","decodeURIComponent","pair","scripts","myScript","getQueryVariable","checkReady","define","amd","bodymovin","registerModifier","getModifier","modifiers","ShapeModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","TrimModifier","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeS","shapeE","shapeSegments","releasePathsData","processShapes","_s","shapePaths","totalShapeLength","edges","addShapes","lastShapeInCollection","newShapesData","pop","addPaths","lastShape","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","segmentCount","currentLengthData","PuckerAndBloatModifier","amount","processPath","pathLength","centerPoint","clonedPath","mat","rz","ry","rx","px","py","pz","forceRender","_isDirty","precalculateMatrix","pre","appliedTransformations","autoOriented","getValueAtTime","v2","defaultVector","_addDynamicProperty","TransformProperty","applyToMatrix","autoOrient","getTransformProperty","RepeaterModifier","tr","TransformPropertyFactory","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","ceil","copies","group","ix","reloadShapes","hasReloaded","cont","elems","transformData","iteration","roundOffset","offsetModulo","items","itemsTransform","mProps","rProps","sProps","pProps","RoundCornersModifier","rd","currentV","currentO","currentI","closerV","distance","newPosPerc","fontData","fStyle","styles","styleName","toLowerCase","fWeight","weight","size","combinedCharacters","font","familyArray","enabledFamilies","join","family","parentNode","fontFamily","node","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","trimFontOptions","parent","loaded","loadedCount","fOrigin","monoCase","sansCase","removeChild","Date","now","maxWaitingTime","checkLoadedFontsBinded","setIsLoadedBinded","def","getFontProperties","engine","tHelper","fFamily","fontProps","textContent","fClass","helper","tCanvasHelper","text","getComputedTextLength","measureText","measure","list","forEach","createHelper","cache","fontArr","setUpNode","fPath","_pendingFonts","loadedSelector","querySelectorAll","shouldLoadFont","rel","sc","checkLoadedFonts","found","ch","char","charCodeAt","console","warn","_warned","fontName","getFontByName","doubleSize","singleSize","fName","firstCharCode","secondCharCode","sum","zeroWidthJoiner","typekitLoaded","setIsLoaded","Font","isModifier","isZeroWidthJoiner","isCombinedCharacter","getCharData","fontPrototype","RenderableElement","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","component","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","mask","_mask","_data","defineProperty","MaskInterface","maskManager","viewData","_masksInterfaces","expressionValue","property","getVelocityAtTime","numKeys","assign","valueProp","valueAtTime","speedAtTime","getSpeedAtTime","velocityAtTime","propertyGroup","defaultUnidimensionalValue","completeProperty","defaultMultidimensionalValue","arrValue","rotation","xRotation","yRotation","xPosition","yPosition","zPosition","anchorPoint","opacity","_thisFunction","ExpressionPropertyInterface","_transformFactory","_px","_py","_pz","_elem","propMatrix","toWorldMat","transformMat","getMatrix","applyPoint","invertPoint","hierarchy","_thisLayerFunction","effects","effect","shapeInterface","textInterface","toWorld","toWorldVec","fromWorld","fromWorldVec","toComp","fromComp","sampleImage","transformInterface","TransformExpressionInterface","getDescriptor","defineProperties","hasParent","layerInterface","anchorPointDescriptor","anchor_point","active","startTime","source","inPoint","outPoint","_name","registerMaskInterface","_registerMaskInterface","registerEffectsInterface","_registerEffectsInterface","interfaceFunction","parentPropertyGroup","propertyName","createEffectsInterface","effectsManager","ef","effectElements","createGroupInterface","effectsData","mn","groupInterface","propertyGroupFactory","createValueInterface","_propertyGroup","numProperties","np","enabled","en","setGroupProperty","PropertyInterface","layer","pixelAspect","compSize","frameDuration","displayStartTime","numLayers","view","propertyIndex","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","ShapePathInterface","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","defaultInterfaceFactory","interfaces","iterateElements","transformInterfaceFactory","cix","content","contentsInterfaceFactory","startPoint","endPoint","dashOb","dataProps","addPropertyToDashOb","_dashPropertyGroup","strokeWidth","dash","start","skewAxis","outerRadius","outerRoundness","innerRadius","innerRoundness","radius","_interfaceFunction","parentGroupWrapper","sourceText","textProperty","currentData","stringValue","_prevValue","_sourceText","mode","effectItem","GroupEffect","eff","BaseElement","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","effectsInterface","CompExpressionInterface","ShapeExpressionInterface","shapesData","itemsData","TextExpressionInterface","setBlendMode","getBlendMode","bm","baseElement","layerElement","blendModeValue","initBaseData","layerId","getType","FrameElement","prepareProperties","isVisible","_isParent","getFootageData","currentPropertyName","currentProperty","propertyNameIndex","outlineInterface","outlineInterfaceFactory","dataInterface","dataInterfaceFactory","imageLoader","FootageElement","getBaseElement","FootageInterface","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","AudioElement","timeRemapped","totalVolume","volumeValue","BaseRenderer","checkLayers","buildItem","checkPendingElements","createItem","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","addPendingElement","setAsParent","setHierarchy","pendingElements","pathValue","setupGlobalData","fontsContainer","animationItem","TransformElement","initTransform","_matMdf","_opMdf","ao","renderTransform","finalMat","globalToLocal","transforms","ptNew","mHelper","maskElement","solidPath","properties","maskType","maskRef","count","rect","currentMasks","ShapePropertyFactory","lastPath","filterID","expansor","feMorph","expan","lastOperator","filterId","lastRadius","getLocationHref","createLayerSolidPath","invRect","drawPath","maskedElement","MaskElement","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","createFilter","createAlphaToLuminanceFilter","filId","skipCoordinates","fil","feColorMatrix","filtersFactory","filters","filterManager","registeredEffects","idPrefix","countsAsEffect","SVGEffects","SVGBaseElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","masker","layerElementParent","featureSupport","gg","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","renderableEffectsManager","setMatte","HierarchyElement","initHierarchy","checkParenting","initElement","createContent","renderInnerContent","innerElem","createProxyFunction","_prototype","RenderableDOMElement","sourceRect","IImageElement","pr","imagePreserveAspectRatio","IShapeElement","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","shouldBreakProcess","searchProcessedElement","processedElements","addProcessedElement","transformers","level","caches","lStr","lvl","SVGShapeData","pElem","msElem","SVGStyleData","dashStr","dashArray","dashoffset","DashProperty","styleOb","SVGStrokeStyleData","SVGFillStyleData","SVGNoStyleData","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","GradientProperty","comparePoints","diff","initGradientData","SVGGradientFillStyleData","stops","setGradientData","setGradientOpacity","pathElement","gfill","gradientId","gf","cst","maskId","opFill","opacityId","lineCapEnum","lc","lineJoinEnum","lj","ml","of","ms","ost","SVGGradientStrokeStyleData","prevViewData","gr","shapeString","_o","_i","createRenderFunction","styleData","itemData","lLen","redraw","_matrixHelper","iterations","_identityMatrix","pathStringTransformed","buildShapeString","styleElem","renderGradient","renderStroke","attr1","attr2","hasOpacity","cValues","oValues","ang","stylesList","animatedContents","SVGShapeElement","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","areAnimated","tempShapes","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","shapeProperty","SVGElementsRenderer","setElementStyles","render","processedPos","ownStyles","currentTransform","modifier","ShapeModifiers","ownModifiers","renderShape","animatedContent","sw","fc","LetterProps","update","updated","_frameId","keysIndex","canResize","minimumFontSize","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","TextProperty","obj","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentIndex","currentValue","textKeys","buildFinalText","charCode","FontManager","charactersArray","charAt","shouldCombine","currentHeight","lineWidth","trackingOffset","newLineFlag","lastSpaceIndex","boxHeight","currentChar","uncollapsedSpaces","maxLineWidth","currentLine","letters","an","add","currentSize","anIndexes","animatorJustifyOffset","anchorGrouping","currentPos","extra","animators","animatorData","fh","fs","fb","based","letterData","rn","indexes","totalChars","currentInd","newInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","_currentTextLength","finalS","finalE","xe","ne","sm","TextSelectorPropFactory","getMult","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","animatorProps","textAnimatorAnimatables","defaultData","TextSelectorProp","renderType","_hasMaskedPath","_textData","_renderType","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","TextAnimatorProperty","searchProperties","getMeasures","pathInfo","tLength","pi","currentLength","segmentInd","pointInd","prevPoint","currentPoint","xPos","yPos","defaultPropsArray","animatorFirstCharOffset","isNewLine","justifyOffsetMult","animatorSelector","matrixHelper","elemOpacity","firstLine","initPathPos","initSegmentInd","initPointInd","letterM","letterFc","letterSw","letterO","letterP","animatorOffset","xPathPos","yPathPos","yOff","offf","addHueToRGB","addSaturationToRGB","addBrightnessToRGB","letterSc","tanAngle","atan","rot","renderedLettersCount","letterValue","ITextElement","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","textSpans","SVGTextLottieElement","singleShape","textContainer","buildTextContents","textArray","String","fromCharCode","textContents","currentTextContent","buildShapeData","shapeItem","usesGlyphs","justify","tElement","tSpan","span","glyph","childSpan","cachedSpansLength","glyphElement","emptyShapeData","_debug","bbox","textBox","renderedLetter","textSpan","ISolidElement","NullElement","SVGRendererBase","svgElement","viewBoxSize","viewBoxOnly","contentVisibility","className","focusable","preserveAspectRatio","destroyed","appendElementInPos","nextElement","insertBefore","ICompElement","setElements","getElements","destroyElements","supports3d","SVGCompElement","config","title","titleElement","titleId","ariaLabel","description","descElement","descId","filterSize","SVGRenderer","saved","cArrPos","cTr","cO","savedOp","CVContextData","duplicate","newLength","set","currentSavedOp","sequences","sequenceList","transform_key_count","ShapeTransformManager","addTransformSequence","sequence","processSequence","processSequences","getNewKey","CVEffects","hasMasks","CVMaskElement","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","CVBaseElement","createElements","blendMode","globalCompositeOperation","hideElement","showElement","forceRealStack","ctxTransform","ctxOpacity","restore","transformsManager","styledShapes","styledShape","trNodes","CVShapeData","CVShapeElement","transformHelper","dashResetter","preTransforms","co","wi","da","do","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","_shouldRender","ownTransforms","renderShapeTransform","parentTransform","groupTransform","drawLayer","currentStyle","coOp","currentGlobalAlpha","strokeStyle","grd","lineCap","lineJoin","miterLimit","setLineDash","lineDashOffset","nodes","closePath","stroke","fill","isMain","renderPath","renderFill","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","currentRender","sWidth","fValue","CVTextElement","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStrokeW","lastStroke","CVImageElement","imgW","imgH","imgRel","canvasRel","par","heightCrop","widthCrop","drawImage","CVSolidElement","clearCanvas","context","dpr","devicePixelRatio","contextData","CanvasRendererBase","cProps","trProps","globalAlpha","actionFlag","popped","containerStyle","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","offsetHeight","elementRel","animationRel","fillType","clearRect","CVCompElement","CanvasRenderer","HBaseElement","checkBlendMode","tg","styleDiv","transformedElementStyle","matrixValue","webkitTransform","addEffects","HSolidElement","backgroundColor","shapesContainer","currentBBox","HShapeElement","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","bounds","xMax","bmMax","right","yMax","bottom","tempBoundingBox","p3","b2ac","t2","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","textPaths","isMasked","HTextElement","compW","compH","innerElemStyle","textColor","lineHeight","tParent","tCont","children","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","pe","_prevMat","HCameraElement","setup","threeDElements","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationY","mRotationX","hasMatrixChanged","matValue","HImageElement","imageElem","camera","HybridRendererBase","newDOMElement","ddd","addTo3dContainer","nextLayer","tmpDOMElement","getThreeDContainerByPos","nextDOMElement","startPos","endPos","createThreeDContainer","center","threeDContainerData","build3dContainers","currentContainer","lastThreeDContainerData","resizerElem","overflow","svg","cWidth","cHeight","floatingContainer","HCompElement","_createBaseContainerElements","HybridRenderer","stackCount","releaseInstances","expression","registers","pushExpression","popExpression","registerExpressionProperty","global","chunks","digits","rngname","startdenom","significance","seed","options","entropy","mixkey","flatten","tostring","autoseed","arc4","prng","int32","quick","S","pass","is_math_call","state","copy","shortseed","seedrandom","keylen","me","depth","typ","result","smear","stringseed","crypto","msCrypto","getRandomValues","plugins","browser","screen","seedRandom","SHAPE","initialize$2","Float32Array","tOfV","tOfA","$bm_isInstanceOfArray","lenA","retArr","tOfB","isNumerable","lenB","sub","mul","mod","mm","radiansToDegrees","arr1","arr2","helperLengthArray","vec","hue2rgb","tMin","tMax","value1","value2","_tMin","rnd","rndm","inTangents","outTangents","inVertexPoint","arrPlaceholder","outVertexPoint","thisProperty","eval","freq","amp","lenWiggle","iWiggle","addedAmps","periods","loopIn","loop_in","loopOut","loop_out","smooth","elem1","elem2","fVec","yaw","pitch","val1","val2","easeOutBez","easeInBez","easeInOutBez","lenKey","iKey","obKey","fps","randSeed","substring","framesPerSecond","_value","frameExpressionId","textIndex","textTotal","selectorValue","thisLayer","thisComp","fromCompToSurface","$bm_transform","elemType","_needsRandom","needsVelocity","velocity","expression_function","scoped_bm_rt","propTypes","executeExpression","__preventDeadCodeRemoval","wiggle","loopInDuration","loopOutDuration","lookAt","easeOut","easeIn","ease","nearestKey","framesToTime","timeToFrames","posterizeTime","initiateExpression","XMLHttpRequest","fetch","frames","$bm_neg","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","radians_to_degrees","degreesToRadians","degrees_to_radians","normalize","rgbToHsl","hslToRgb","linear","createPath","ExpressionManager","_cachingAtTime","delta","speed","searchExpressions","getStaticValueAtTime","durationFlag","lastKeyFrame","firstKeyFrame","cycleDuration","ret","initV","endV","repeats","current","lastValue","nextLastValue","firstValue","nextFirstValue","samples","endFrame","sampleValue","sampleFrequency","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformValueAtTime","getTransformStaticValueAtTime","expressionHelpers","propertyGetProp","shapeValue","lastTime","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","ShapePropertyConstructorFunction","KeyframedShapePropertyConstructorFunction","getShapeValueAtTime","trims","propertyGetShapeProp","addPropertyDecorator","calculateExpression","getExpressionValue","isKeyframed","hasExpressions","addDecorator","SVGComposableEffect","createMergeNode","resultId","ins","feMerge","feMergeNode","filter","matrixFilter","SVGTintFilter","colorWhite","colorBlack","SVGFillFilter","initialized","SVGStrokeEffect","initialize","childNodes","groupPath","elemChildren","removeAttribute","pathMasker","getTotalLength","dasharrayValue","lineLength","units","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGTritoneFilter","color3","color2","color1","tableR","tableG","tableB","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGProLevelsFilter","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","inputDelta","outputDelta","table","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","SVGDropShadowEffect","rgbToHex","col","filterElem","SVGMatte3Effect","findSymbol","_svgMatteSymbols","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","SVGGaussianBlurEffect","kBlurrinessToSigma","dimensions","sigma","sigmaX","sigmaY","edgeMode","registerRenderer","Expressions","initialize$1","registerEffect"],"mappings":"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"}