blob: a7996f8295e25cd5b87c0617756e77785cd27ab3 [file] [log] [blame]
(function(window){"use strict";function Matrix(t){var e=this;e._t=e.transform,e.a=e.d=1,e.b=e.c=e.e=e.f=0,e.props=[1,0,0,1,0,0],e.cssParts=["matrix(","",")"],e.a1=e.b1=e.c1=e.d1=e.e1=e.f1=0,e.context=t,e.cos=e.sin=0,t&&t.setTransform(1,0,0,1,0,0)}function matrixManagerFunction(){var t=new Matrix,e=function(t,e,a,i,r,n,s,o,h){var m,p,l,c,d,u,f;return m=$M([[1,0,0,0],[0,Math.cos(t),Math.sin(-t),0],[0,Math.sin(t),Math.cos(t),0],[0,0,0,1]]),p=$M([[Math.cos(e),0,Math.sin(e),0],[0,1,0,0],[Math.sin(-e),0,Math.cos(e),0],[0,0,0,1]]),l=$M([[Math.cos(a),Math.sin(-a),0,0],[Math.sin(a),Math.cos(a),0,0],[0,0,1,0],[0,0,0,1]]),d=$M([[i,0,0,0],[0,r,0,0],[0,0,n,0],[0,0,0,1]]),u=m.x(p).x(l).x(d),u=u.transpose(),f=$M([[1,0,0,0],[0,1,0,0],[0,0,1,0],[s,o,h,1]]),u=u.x(f),c="matrix3d(",c+=u.e(1,1).toFixed(5)+","+u.e(1,2).toFixed(5)+","+u.e(1,3).toFixed(5)+","+u.e(1,4).toFixed(5)+",",c+=u.e(2,1).toFixed(5)+","+u.e(2,2).toFixed(5)+","+u.e(2,3).toFixed(5)+","+u.e(2,4).toFixed(5)+",",c+=u.e(3,1).toFixed(5)+","+u.e(3,2).toFixed(5)+","+u.e(3,3).toFixed(5)+","+u.e(3,4).toFixed(5)+",",c+=u.e(4,1).toFixed(5)+","+u.e(4,2).toFixed(5)+","+u.e(4,3).toFixed(5)+","+u.e(4,4).toFixed(5),c+=")"},a=function(e,a,i,r,n){return t.reset().translate(r,n).rotate(e).scale(a,i).toCSS()},i=function(e,a,i,r,n){return t.reset().translate(r,n).rotate(e).scale(a,i).toArray()},r=function(t){return a(t.r,t.s[0],t.s[1],t.p[0],t.p[1])},n=function(t,i){return i?e(-t.tr.r[0],t.tr.r[1],t.tr.r[2],t.tr.s[0],t.tr.s[1],t.tr.s[2],t.tr.p[0],t.tr.p[1],t.tr.p[2]):a(t.tr.r[2],t.tr.s[0],t.tr.s[1],t.tr.p[0],t.tr.p[1])},s=function(t,i){return i?e(-t.r[0],t.r[1],t.r[2],t.s[0],t.s[1],t.s[2],t.p[0],t.p[1],t.p[2]):a(t.r[2],t.s[0],t.s[1],t.p[0],t.p[1])},o=function(t,e){return e?null:i(t.r[2],t.s[0],t.s[1],t.p[0],t.p[1])};return{get2DMatrix:r,getMatrix:n,getMatrix2:s,getMatrixArray:o,getMatrixArrayFromParams:i,getMatrix2FromParams:a}}function styleDiv(t){t.style.position="absolute",t.style.top=0,t.style.left=0,t.style.display="block",t.style.verticalAlign="top",t.style.backfaceVisibility=t.style.webkitBackfaceVisibility="hidden",styleUnselectableDiv(t)}function styleUnselectableDiv(t){t.style.userSelect="none",t.style.MozUserSelect="none",t.style.webkitUserSelect="none",t.style.oUserSelect="none"}function randomString(t,e){void 0===e&&(e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890");var a,i="";for(a=t;a>0;--a)i+=e[Math.round(Math.random()*(e.length-1))];return i}function componentToHex(t){var e=t.toString(16);return 1==e.length?"0"+e:e}function rgbToHex(t,e,a){return"#"+colorMap[t]+colorMap[e]+colorMap[a]}function fillToRgba(t,e){if(!cachedColors[t]){var a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);cachedColors[t]=parseInt(a[1],16)+","+parseInt(a[2],16)+","+parseInt(a[3],16)}return"rgba("+cachedColors[t]+","+e+")"}function createColorMap(){var t,e;for(t=0;256>t;t+=1)e=t.toString(16),colorMap[t]=1==e.length?"0"+e:e}function createElement(t,e,a){if(!e){var i=Object.create(t.prototype,a),r={};return i&&"[object Function]"===r.toString.call(i.init)&&i.init(),i}e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.prototype.parent=t.prototype}function defineDescriptor(t,e,a,i){var r={writable:!1,configurable:!1,enumerable:!1,value:a};if(i)for(var n in i)r[n]=i[n];var s={};t&&"[object Function]"===s.toString.call(t)&&(t=t.prototype),Object.defineProperty(t,e,r)}function defineAccessor(t,e,a){var i,r={enumerable:!1,configurable:!1,get:function(){return i},set:function(t){i=t}};if(a)for(var n in a)r[n]=a[n];var s={};t&&"[object Function]"===s.toString.call(t)&&(t=t.prototype),Object.defineProperty(t,e,r)}function bezFunction(){function t(t,e,a,i,r,n){return o.abs((a-t)*(n-e)-(r-t)*(i-e))<1e-5}function e(t){return n[t].fnc}function a(t,e,a,i,r){if(r||(r=("bez_"+t+"_"+e+"_"+a+"_"+i).replace(/\./g,"p")),n[r])return n[r];var s,o,h,m,p,l;return n[r]=function(r,n,c,d,u){for(var f,y=n/u,r=y,g=0;++g<14&&(h=3*t,o=3*(a-t)-h,s=1-h-o,f=r*(h+r*(o+r*s))-y,!(Math.abs(f)<.001));)r-=f/(h+r*(2*o+3*s*r));l=3*e,p=3*(i-e)-l,m=1-l-p;var v=r*(l+r*(p+r*m));return d*v+c},n[r]}function i(e,a,i,r){var n=(e.join("_")+"_"+a.join("_")+"_"+i.join("_")+"_"+r.join("_")).replace(/\./g,"p");if(s[n])return s[n];var o,h,m,p,l,c,d,u,f,y,g,v,E=500,b=0,x=null,C={points:[],segmentLength:0};for(t(e[0],e[1],a[0],a[1],i[0],i[1])&&t(e[0],e[1],a[0],a[1],r[0],r[1])&&(E=2),m=i.length,o=0;E>o;o+=1){for(v=[],y=o/(E-1),g=0,h=0;m>h;h+=1)p=e[h]+(i[h]-e[h])*y,l=i[h]+(r[h]-i[h])*y,c=r[h]+(a[h]-r[h])*y,d=p+(l-p)*y,u=l+(c-l)*y,f=d+(u-d)*y,v.push(f),null!==x&&(g+=Math.pow(v[h]-x[h],2));g=Math.sqrt(g),b+=g,C.points.push({partialLength:g,cumulatedLength:b,point:v}),x=v}return C.segmentLength=b,s[n]=C,C}function r(e){var a,i,r,n,s,o,h,m,p,l,c,d,u=e.s,f=e.e,y=e.to,g=e.ti,v=500,E=0,b=null,x={points:[],segmentLength:0};for(t(u[0],u[1],f[0],f[1],u[0]+y[0],u[1]+y[1])&&t(u[0],u[1],f[0],f[1],f[0]+g[0],f[1]+g[1])&&(v=2),r=y.length,a=0;v>a;a+=1){for(d=[],l=a/(v-1),c=0,i=0;r>i;i+=1)n=u[i]+y[i]*l,s=u[i]+y[i]+(f[i]+g[i]-(u[i]+y[i]))*l,o=f[i]+g[i]+-g[i]*l,h=n+(s-n)*l,m=s+(o-s)*l,p=h+(m-h)*l,d.push(p),null!==b&&(c+=Math.pow(d[i]-b[i],2));c=Math.sqrt(c),E+=c,x.points.push({partialLength:c,cumulatedLength:E,point:d}),b=d}x.segmentLength=E,e.bezierData=x}var n=[],s={},o=Math,h={getEasingCurve:a,getEasingCurveByIndex:e,drawBezierCurve:i,buildBezierData:r};return h}function dataFunctionManager(){function t(t,e,a){var i,r=s(t,e,a),n=[];for(i=0;e>i;i+=1)n.push(Math.floor(r[i]*f));return n}function e(t,e){var a,i,r,n=t.length;for(a=0;n>a;a+=1)if(void 0!==t[a].t)if(t[a].s instanceof Array)for(r=t[a].s.length,i=0;r>i;i+=1)t[a].s[i]*=e,t[a].e[i]*=e;else t[a].s&&(t[a].s*=e,t[a].e*=e);else t[a]=t[a]*e}function a(r){var s,o,h,m,p,l,c,d,u,f,y,g=r.length;for(c=0;g>c;c+=1){if(h=r[c],s=h.outPoint-h.startTime,o=h.startTime,h.layerName=n(h.layerName),h.parent&&(h.parent=n(h.parent)),h.renderedFrame={},h.renderedData={},m=[],p=-1,h.tm&&(h.tm=t(h.tm,s,o)),h.ks.o instanceof Array?e(h.ks.o,.01):h.ks.o/=100,h.ks.s instanceof Array?e(h.ks.s,.01):h.ks.s/=100,h.ks.r instanceof Array?e(h.ks.r,v):h.ks.r*=v,h.hasMask){var E=h.masksProperties;for(u=E.length,d=0;u>d;d+=1)if(E[d].pt.i)i(E[d].pt);else for(y=E[d].pt.length,f=0;y>f;f+=1)E[d].pt[f].s&&(i(E[d].pt[f].s[0]),i(E[d].pt[f].e[0]))}if("PreCompLayer"==h.type)a(h.layers);else if("ShapeLayer"==h.type)for(u=h.shapes.length,d=0;u>d;d+=1)if(l=h.shapes[d],l.renderedData={},l.tr.o instanceof Array?e(l.tr.o,.01):l.tr.o/=100,l.tr.s instanceof Array?e(l.tr.s,.01):l.tr.s/=100,l.tr.r instanceof Array?e(l.tr.r,v):l.tr.r*=v,l.fl&&(l.fl.o instanceof Array?e(l.fl.o,.01):l.fl.o*=.01),l.st&&(l.st.o instanceof Array?e(l.st.o,.01):l.st.o*=.01),l.ks)if(l.ks.i)i(l.ks);else for(y=l.ks.length,f=0;y>f;f+=1)l.ks[f].s&&(i(l.ks[f].s[0]),i(l.ks[f].e[0]))}}function i(t){var e,a=t.i.length;for(e=0;a>e;e+=1)t.i[e][0]+=t.v[e][0],t.i[e][1]+=t.v[e][1],t.o[e][0]+=t.v[e][0],t.o[e][1]+=t.v[e][1]}function r(t){g[t._id]={data:t,renderedFrames:[]},f=t.animation.frameRate,a(t.animation.layers)}function n(t){return t=t.replace(/ /g,"_"),t=t.replace(/-/g,"_"),t=t.replace(/\./g,"_"),t=t.replace(/\//g,"_")}function s(t,e,a){var i,r,n=[];if(!(t instanceof Array)||null==t[0].t)return n.push(t),n;var s,o;n=[];var h,m,p,l=[];r=t.length;var c,d=1e3,u=[],f=[];for(i=0;r>i;i+=1)if(s=t[i],s.t-=a,s.to){var y,g,v,E,b,x,C,c,S,F,A=0,I=null,w={points:[],length:0};for(y=0;d>y;y+=1)F=[],c=y/(d-1),S=0,u=[],f=[],s.to.forEach(function(t,e){null==u[e]&&(u[e]=s.s[e]+s.to[e],f[e]=s.e[e]+s.ti[e]),g=s.s[e]+(u[e]-s.s[e])*c,v=u[e]+(f[e]-u[e])*c,E=f[e]+(s.e[e]-f[e])*c,b=g+(v-g)*c,x=v+(E-v)*c,C=b+(x-b)*c,F.push(C),null!==I&&(S+=Math.pow(F[e]-I[e],2))}),S=Math.sqrt(S),A+=S,w.points.push({partialLength:A,point:F}),I=F,s.bezierData=w;w.segmentLength=A}var k=0,M=0;for(i=0;e>i;i+=1){h=k;for(var D=!1;r-1>h;){if(s=t[h],o=t[h+1],i<s.t&&0==h){for(p=s.s.length,l=[],m=0;p>m;m+=1)l.push(s.s[m]);n.push(l),D=!0,k!=h&&(k=h,M=0);break}if(i>=s.t&&i<o.t){if(l=[],s.to){c=bez.getEasingCurve(s.o.x,s.o.y,s.i.x,s.i.y)("",i-s.t,0,1,o.t-s.t);var y,_,T,w=s.bezierData,P=w.segmentLength*c;for(m=M;m<w.points.length;){if(0==i||0==P||0==c){l=w.points[m].point,M=m;break}if(m==w.points.length-1)l=w.points[m].point;else if(P>w.points[m].partialLength&&P<w.points[m+1].partialLength){for(_=w.points[m].point.length,T=(P-w.points[m].partialLength)/(w.points[m+1].partialLength-w.points[m].partialLength),y=0;_>y;y+=1)l.push(w.points[m].point[y]+(w.points[m+1].point[y]-w.points[m].point[y])*T);M=m;break}m+=1}}else{var N,z,L,V;s.s.forEach(function(t,e){if(1!==s.h&&(s.o.x instanceof Array?(N=s.o.x[e],z=s.o.y[e],L=s.i.x[e],V=s.i.y[e]):(N=s.o.x,z=s.o.y,L=s.i.x,V=s.i.y),c=bez.getEasingCurve(N,z,L,V)("",i-s.t,0,1,o.t-s.t)),t.i){var a={i:[],o:[],v:[]};t.i.forEach(function(i,r){var n=[],o=[],h=[];i.forEach(function(a,i){1===s.h?(n.push(a),o.push(t.o[r][i]),h.push(t.v[r][i])):(n.push(a+(s.e[e].i[r][i]-a)*c),o.push(t.o[r][i]+(s.e[e].o[r][i]-t.o[r][i])*c),h.push(t.v[r][i]+(s.e[e].v[r][i]-t.v[r][i])*c))}),a.i.push(n),a.o.push(o),a.v.push(h)}),l.push(a)}else l.push(1===s.h?t:t+(s.e[e]-t)*c)})}n.push(l),D=!0,k!=h&&(k=h,M=0);break}h+=1}0==D&&(s=t[t.length-2],l=[],s.e.forEach(function(t){l.push(t)}),n.push(l))}for(h=n.length;e>h;)n.push(l),h+=1;return n}function o(t,e,a,i,r){if(!t.length)return t;if(null==t[0].t)return t[i];var n,s,o;if(r)return n=t[t.__lastKey],n.to?(o=n.bezierData,0==n.__type?o.points[n.__lastPoint].point[i]:o.points[n.__lastPoint].point[i]+(o.points[n.__lastPoint+1].point[i]-o.points[n.__lastPoint].point[i])*n.__lastPerc):1===n.h?n.s[i]:n.s[i]+(n.e[i]-n.s[i])*n.__lastPerc;var h,m=0,p=t.length-1,l=1;void 0!==t.__lastFrameNum&&(m=t.__lastKey,t.__lastFrameNum>e&&(l=-1));var c=!0;for(t.__lastFrameNum==e?(c=!1,n=t[m],s=t[m+1]):m==p?m-=1:-1==m&&(m=0);!(!c||(n=t[m],s=t[m+1],m==p-1&&e>=s.t-a)||s.t-a>e&&1==l);){if(s.t-a<e&&-1==l){m+=1,n=t[m],s=t[m+1];break}p-1>m&&1==l||m>0&&-1==l?m+=l:c=!1}t.__lastKey=m,t.__lastFrameNum=e,n.to&&!n.bezierData&&bez.buildBezierData(n);var d,u=0;if(!n.to){var f,y,g,v;if(1!==n.h){n.o.x instanceof Array?(f=n.o.x[i],y=n.o.y[i],g=n.i.x[i],v=n.i.y[i]):(f=n.o.x,y=n.o.y,g=n.i.x,v=n.i.y);var E;n.__fnct?E=n.__fnct:(E=bez.getEasingCurve(f,y,g,v),n.__fnct=E),d=E("",e-(n.t-a),0,1,s.t-a-(n.t-a)),e>=s.t-a?d=1:e<n.t-a&&(d=0)}return 1===n.h?(n.__type=0,n.s[i]):(n.__lastPerc=d,n.__type=0,n.s[i]+(n.e[i]-n.s[i])*d)}if(o=n.bezierData,e>=s.t-a)return n.__lastPoint=o.points.length-1,n.__type=0,o.points[o.points.length-1].point[i];if(e<n.t-a)return n.__lastPoint=0,n.__type=0,o.points[0].point[i];var E;n.__fnct?E=n.__fnct:(E=bez.getEasingCurve(n.o.x,n.o.y,n.i.x,n.i.y),n.__fnct=E),d=E("",e-(n.t-a),0,1,s.t-a-(n.t-a));var b,x=o.segmentLength*d,C=0;for(l=1,void 0!==n.__lastPoint&&(u=n.__lastPoint,C=o.points[u].cumulatedLength,x<n.__lastDistanceInLine&&(l=-1)),c=!0,h=o.points.length;c;){if(C+=o.points[u].partialLength*l,0==e||0==x||0==d)return n.__lastPoint=u,n.__lastDistanceInLine=x,n.__type=0,o.points[u].point[i];if(u==o.points.length-1)return n.__lastPoint=u,n.__lastDistanceInLine=x,n.__type=0,o.points[u].point[i];if(x>C&&x<C+o.points[u+1].partialLength)return b=(x-C)/o.points[u+1].partialLength,n.__lastPoint=u,n.__lastDistanceInLine=x,n.__type=1,n.__lastPerc=b,o.points[u].point[i]+(o.points[u+1].point[i]-o.points[u].point[i])*b;h-1>u&&1==l||u>0&&-1==l?u+=l:c=!1}}function h(t,e,a,i){var r,n,s,o,h,m;if(!t.length)return"p"==i.type?(b.px=t,b.py=t):"s"==i.type?(b.sx=t,b.sy=t):"r"==i.type&&(b.r=t),i.toArray?[t]:t;if(null==t[0].t)return"p"==i.type?(b.px=t[0],b.py=t[1]):"s"==i.type?(b.sx=t[0],b.sy=t[1]):"r"==i.type&&(b.r=t[0]),t;h=0,m=t.length-1;var p=1,l=!0;for(void 0!==t.__lastFrameNum&&(h=t.__lastKey,t.__lastFrameNum>e?p=-1:t.__lastFrameNum==e?(l=!1,r=t[h],n=t[h+1]):h==m?h-=1:-1==h&&(h=0));!(!l||(r=t[h],n=t[h+1],h==m-1&&e>=n.t-a)||n.t-a>e&&1==p);){if(n.t-a<e&&-1==p){h+=1,r=t[h],n=t[h+1];break}m-1>h&&1==p||h>0&&-1==p?h+=p:l=!1}t.__lastKey=h,t.__lastFrameNum=e,r.to&&!r.bezierData&&bez.buildBezierData(r);var c,d,u,f=0;if("default"==i.type&&(s=[]),r.to){if(o=r.bezierData,e>=n.t-a)return"p"==i.type?(b.px=o.points[o.points.length-1].point[0],b.py=o.points[o.points.length-1].point[1]):"s"==i.type?(b.sx=o.points[o.points.length-1].point[0],b.sy=o.points[o.points.length-1].point[1]):"r"==i.type&&(b.r=o.points[o.points.length-1].point[0]),o.points[o.points.length-1].point;if(e<r.t-a)return"p"==i.type?(b.px=o.points[0].point[0],b.py=o.points[0].point[1]):"s"==i.type?(b.sx=o.points[0].point[0],b.sy=o.points[0].point[1]):"r"==i.type&&(b.r=o.points[0].point[0]),o.points[0].point;var y;r.__fnct?y=r.__fnct:(y=bez.getEasingCurve(r.o.x,r.o.y,r.i.x,r.i.y,r.n),r.__fnct=y),u=y("",e-(r.t-a),0,1,n.t-a-(r.t-a));var g,v=o.segmentLength*u,E=0;for(p=1,void 0!==r.__lastPoint&&(f=r.__lastPoint,E=o.points[f].cumulatedLength,v<r.__lastDistanceInLine&&(p=-1)),l=!0,I=o.points.length;l;){if(E+=o.points[f].partialLength*p,0==e||0==v||0==u){"p"==i.type?(b.px=o.points[f].point[0],b.py=o.points[f].point[1]):"s"==i.type?(b.sx=o.points[f].point[0],b.sy=o.points[f].point[1]):"r"==i.type?b.r=o.points[f].point[0]:s=o.points[f].point,r.__lastPoint=f,r.__lastDistanceInLine=v;break}if(f==o.points.length-1){"p"==i.type?(b.px=o.points[f].point[0],b.py=o.points[f].point[1]):"s"==i.type?(b.sx=o.points[f].point[0],b.sy=o.points[f].point[1]):"r"==i.type?b.r=o.points[f].point[0]:s=o.points[f].point,r.__lastPoint=f,r.__lastDistanceInLine=v;break}if(v>E&&v<E+o.points[f+1].partialLength){if(g=(v-E)/o.points[f+1].partialLength,"p"==i.type)b.px=o.points[f].point[0]+(o.points[f+1].point[0]-o.points[f].point[0])*g,b.py=o.points[f].point[1]+(o.points[f+1].point[1]-o.points[f].point[1])*g;else if("s"==i.type)b.sx=o.points[f].point[0]+(o.points[f+1].point[0]-o.points[f].point[0])*g,b.sy=o.points[f].point[1]+(o.points[f+1].point[1]-o.points[f].point[1])*g;else if("r"==i.type)b.r=o.points[f].point[0]+(o.points[f+1].point[0]-o.points[f].point[0])*g;else for(d=o.points[f].point.length,c=0;d>c;c+=1)s.push(o.points[f].point[c]+(o.points[f+1].point[c]-o.points[f].point[c])*g);r.__lastPoint=f,r.__lastDistanceInLine=v;break}I-1>f&&1==p||f>0&&-1==p?f+=p:l=!1}}else{var x,C,S,F;for(m=r.s.length,h=0;m>h;h+=1){if(1!==r.h){r.o.x instanceof Array?(x=r.o.x[h],C=r.o.y[h],S=r.i.x[h],F=r.i.y[h]):(x=r.o.x,C=r.o.y,S=r.i.x,F=r.i.y);var y;r.__fnct?y=r.__fnct:(y=bez.getEasingCurve(x,C,S,F),r.__fnct=y),u=y("",e-(r.t-a),0,1,n.t-a-(r.t-a)),e>=n.t-a?u=1:e<r.t-a&&(u=0)}if(r.s[h].i){var A={i:[],o:[],v:[]},I=r.s[h].i.length;for(f=0;I>f;f+=1){var w=[],k=[],M=[];for(d=r.s[h].i[f].length,c=0;d>c;c+=1)1===r.h?(w.push(r.s[h].i[f][c]),k.push(r.s[h].o[f][c]),M.push(r.s[h].v[f][c])):(w.push(r.s[h].i[f][c]+(r.e[h].i[f][c]-r.s[h].i[f][c])*u),k.push(r.s[h].o[f][c]+(r.e[h].o[f][c]-r.s[h].o[f][c])*u),M.push(r.s[h].v[f][c]+(r.e[h].v[f][c]-r.s[h].v[f][c])*u));A.i.push(w),A.o.push(k),A.v.push(M)}s.push(A)}else 1===r.h?"p"==i.type?0==h?b.px=r.s[h]:1==h&&(b.py=r.s[h]):"s"==i.type?0==h?b.sx=r.s[h]:1==h&&(b.sy=r.s[h]):"r"==i.type?b.r=r.s[h]:s.push(r.s[h]):"p"==i.type?0==h?b.px=r.s[h]+(r.e[h]-r.s[h])*u:1==h&&(b.py=r.s[h]+(r.e[h]-r.s[h])*u):"s"==i.type?0==h?b.sx=r.s[h]+(r.e[h]-r.s[h])*u:1==h&&(b.sy=r.s[h]+(r.e[h]-r.s[h])*u):"r"==i.type?b.r=r.s[h]+(r.e[h]-r.s[h])*u:s.push(r.s[h]+(r.e[h]-r.s[h])*u)}}return s}function m(t,e){var a,i,r,n,s,o,h="";if(!(t instanceof Array)){for(a=t.v,i=t.o,r=t.i,o=a.length,h+="M"+a[0].join(","),s=1;o>s;s++)h+=" C"+i[s-1].join(",")+" "+r[s].join(",")+" "+a[s].join(",");return e!==!1&&(h+=" C"+i[s-1].join(",")+" "+r[0].join(",")+" "+a[0].join(",")),h}var m,p=t.length;for(h="",m=0;p>m;m+=1){for(n=t[m],a=n.v,i=n.o,r=n.i,o=a.length,h+="M"+a[0].join(","),s=1;o>s;s++)h+=" C"+i[s-1].join(",")+" "+r[s].join(",")+" "+a[s].join(",");e!==!1&&(h+=" C"+i[s-1].join(",")+" "+r[0].join(",")+" "+a[0].join(","))}return h}function p(t,e,a){var i,r,n,s,c,d,u,f,g,v,b,x,C,S,F,A,I,w,k,M,D,_,T,P,N,z,L={},V=t.length;for(M=0;V>M;M+=1)if(D=t[M],F=e-D.startTime,!(e<D.inPoint||e>D.outPoint||D.an[F])){if(i={},E.arrayFlag=!1,E.type="default",i.a=h(D.ks.a,F,D.startTime,E),E.arrayFlag=!1,E.type="default",i.o=h(D.ks.o,F,D.startTime,E),E.arrayFlag=!1,E.type="p",_=o(D.ks.p,F,D.startTime,0),T=o(D.ks.p,F,D.startTime,1,!0),E.arrayFlag=!0,E.type="r",z=o(D.ks.r,F,D.startTime,0),E.arrayFlag=!0,E.type="s",P=o(D.ks.s,F,D.startTime,0),N=o(D.ks.s,F,D.startTime,1,!0),w={},w.an={tr:i},E.arrayFlag=!1,E.type="default","canvas"==a?w.an.matrixArray=y.getMatrixArrayFromParams(z,P,N,_,T):w.an.matrixValue=y.getMatrix2FromParams(z,P,N,_,T),D.renderedData[F]=w,D.hasMask)for(r=D.masksProperties,I=r.length,A=0;I>A;A+=1)r[A].pathStrings||(r[A].pathStrings=[],r[A].pathVertices=[],r[A].opacity=[]),n=h(r[A].pt,F,D.startTime,E),r[A].pathVertices[F]=n instanceof Array?n:[n],"svg"==a&&(r[A].pathStrings[F]=m(n,r[A].cl)),r[A].opacity[F]=h(r[A].o,F,D.startTime,E),r[A].opacity[F]=r[A].opacity[F]instanceof Array?r[A].opacity[F][0]/100:r[A].opacity[F]/100;if("PreCompLayer"==D.type)s=D.tm?D.tm[F]<0?0:D.tm[F]:F,p(D.layers,s,a);else if("ShapeLayer"==D.type)for(I=D.shapes.length,A=0;I>A;A+=1){if(k={},c=D.shapes[A],c.renderedData[F]=k,c._created||(c.an.tr=[],c.an.renderedFrame={},c.ks?c.an.path=[]:c.el?c.an.ell=[]:c.rc&&(c.an.rect=[]),c.fl&&(c.an.fill=[]),c.st&&(c.an.stroke=[])),c.trim&&!c._created&&(c.trim.an=[]),c.fl&&(u=h(c.fl.c,F,D.startTime,E),d=h(c.fl.o,F,D.startTime,E),k.fill={opacity:d instanceof Array?d[0]:d},"canvas"==a?(l(u),k.fill.color=u):k.fill.color=rgbToHex(Math.round(u[0]),Math.round(u[1]),Math.round(u[2]))),c.ks?(f=h(c.ks,F,D.startTime,E),k.path={pathNodes:f,closed:c.closed},"svg"==a&&(k.path.pathString=m(f,c.closed))):c.el?(x=h(c.el.p,F,D.startTime,E),C=h(c.el.s,F,D.startTime,E),k.ell={p:x,size:C}):c.rc&&(x=h(c.rc.p,F,D.startTime,E),C=h(c.rc.s,F,D.startTime,E),S=h(c.rc.r,F,D.startTime,E),k.rect={position:x,size:C,roundness:S}),c.st&&(g=h(c.st.c,F,D.startTime,E),v=h(c.st.o,F,D.startTime,E),b=h(c.st.w,F,D.startTime,E),k.stroke={opacity:v instanceof Array?v[0]:v,width:b instanceof Array?b[0]:b},"canvas"==a?(l(g),k.stroke.color=g):k.stroke.color=rgbToHex(Math.round(g[0]),Math.round(g[1]),Math.round(g[2]))),L={},L.a=h(c.tr.a,F,D.startTime,E),L.o=h(c.tr.o,F,D.startTime,E),E.arrayFlag=!0,E.type="s",P=o(c.tr.s,F,D.startTime,0),N=o(c.tr.s,F,D.startTime,1,!0),E.arrayFlag=!0,E.type="r",z=o(c.tr.r,F,D.startTime,0),E.arrayFlag=!1,E.type="p",_=o(c.tr.p,F,D.startTime,0),T=o(c.tr.p,F,D.startTime,1,!0),E.arrayFlag=!1,E.type="default","canvas"==a?L.mtArr=y.getMatrixArrayFromParams(z,P,N,_,T):L.mt=y.getMatrix2FromParams(z,P,N,_,T),c.an.tr[F]=L,k.tr=L,c.trim){var R=h(c.trim.s,F,D.startTime,E),B=h(c.trim.e,F,D.startTime,E),j=h(c.trim.o,F,D.startTime,E);k.trim={s:R,e:B,o:j}}c._created||(c._created=!0)}}}function l(t){var e,a=t.length;for(e=0;a>e;e+=1)t[e]=Math.round(t[e])}function c(t,e){for(var a=1;a>0;){if(e+=1,e>=t.data.animation.totalFrames){t.renderFinished=!0;break}t.renderedFrames[e]||(d(t.data._id,e),a-=1)}}function d(t,e){return 2==g[t].renderedFrames[e]?void(g[t].renderFinished||c(g[t],e)):(g[t].renderedFrames[e]=2,void p(g[t].data.animation.layers,e,g[t].data._animType))}function u(t){var e,a=g[t].data,i=a.animation.totalFrames,r=[];for(e=0;i>e;e+=1)r.push({num:e,data:d(t,e)})}var f=0,y=new MatrixManager,g={},v=Math.PI/180,E={arrayFlag:!1},b={r:0,sx:1,sy:1,px:1,py:1},x={};return x.completeData=r,x.renderFrame=d,x.renderAllFrames=u,x}function SVGRenderer(t){this.animationItem=t,this.layers=null,this.lastFrame=-1}function CanvasRenderer(t){this.animationItem=t,this.lastFrame=-1}function MaskElement(){}function ICompElement(t,e){this.parent.constructor.call(this,t,e),this.layers=t.layers}function IImageElement(t,e){this.animationItem=e,this.assets=this.animationItem.getAssets(),this.path=this.animationItem.getPath(),this.parent.constructor.call(this,t,e)}function IShapeElement(t,e){this.shapes=[],this.parent.constructor.call(this,t,e)}function ShapeItemElement(t){this.data=t,this.shapeG=document.createElementNS(svgNS,"g"),this.pathLength=0,this.cachedData=[],this.renderedFrame={path:"",stroke:{},fill:{},tr:{a:[]},trim:{},ellipse:{},rect:{}},"pathShape"===this.data.type?this.shape=document.createElementNS(svgNS,"path"):"rectShape"===this.data.type?this.shape=document.createElementNS(svgNS,"rect"):"ellipseShape"===this.data.type?(this.shape=document.createElementNS(svgNS,"ellipse"),this.data.trim&&this.adjustTrim()):this.shape=document.createElementNS(svgNS,"path"),this.data.trim?this.shape.setAttribute("stroke-linecap","round"):(this.shape.setAttribute("stroke-linejoin","round"),this.shape.setAttribute("stroke-linecap","round")),this.data.renderedData||(this.data.renderedData={}),this.shape.setAttribute("name",this.data.name),styleUnselectableDiv(this.shapeG),styleUnselectableDiv(this.shape),this.shapeG.appendChild(this.shape)}function ISolidElement(t,e){this.parent.constructor.call(this,t,e)}function ITextElement(t,e){this.parent.constructor.call(this,t,e)}function CVBaseElement(t,e){this.renderer=e,this.data=t,this.currentAnimData=null,this.init()}function CVCompElement(t,e){this.parent.constructor.call(this,t,e),this.layers=t.layers}function CVImageElement(t,e){this.renderer=e,this.animationItem=e.animationItem,this.assets=this.animationItem.getAssets(),this.path=this.animationItem.getPath(),this.parent.constructor.call(this,t,e),this.animationItem.pendingElements+=1}function CVShapeElement(t,e){this.shapes=[],this.parent.constructor.call(this,t,e)}function CVShapeItemElement(t,e){this.data=t,this.renderer=e,this.frameNum=-1,this.renderedPaths={},this.trims=[]}function CVSolidElement(t,e){this.parent.constructor.call(this,t,e)}function CVTextElement(t,e){this.parent.constructor.call(this,t,e)}function CVMaskElement(){}var svgNS="http://www.w3.org/2000/svg";Matrix.prototype={concat:function(t){return this.clone()._t(t.a,t.b,t.c,t.d,t.e,t.f)},flipX:function(){return this._t(-1,0,0,1,0,0)},flipY:function(){return this._t(1,0,0,-1,0,0)},reflectVector:function(t,e){var a=this.applyToPoint(0,1),i=2*(a.x*t+a.y*e);return t-=i*a.x,e-=i*a.y,{x:t,y:e}},reset:function(){return this.setTransform(1,0,0,1,0,0)},rotate:function(t){return 0==t?this:(this.cos=Math.cos(t),this.sin=Math.sin(t),this._t(this.cos,this.sin,-this.sin,this.cos,0,0))},rotateFromVector:function(t,e){return this.rotate(Math.atan2(e,t))},rotateDeg:function(t){return this.rotate(t*Math.PI/180)},scaleU:function(t){return this._t(t,0,0,t,0,0)},scale:function(t,e){return 1==t&&1==e?this:this._t(t,0,0,e,0,0)},scaleX:function(t){return this._t(t,0,0,1,0,0)},scaleY:function(t){return this._t(1,0,0,t,0,0)},shear:function(t,e){return this._t(1,e,t,1,0,0)},shearX:function(t){return this._t(1,0,t,1,0,0)},shearY:function(t){return this._t(1,t,0,1,0,0)},skew:function(t,e){return this.shear(Math.tan(t),Math.tan(e))},skewX:function(t){return this.shearX(Math.tan(t))},skewY:function(t){return this.shearY(Math.tan(t))},setTransform:function(t,e,a,i,r,n){return this.props[0]=t,this.props[1]=e,this.props[2]=a,this.props[3]=i,this.props[4]=r,this.props[5]=n,this._x()},translate:function(t,e){return this._t(1,0,0,1,t,e)},translateX:function(t){return this._t(1,0,0,1,t,0)},translateY:function(t){return this._t(1,0,0,1,0,t)},transform:function(t,e,a,i,r,n){return this.a1=this.props[0],this.b1=this.props[1],this.c1=this.props[2],this.d1=this.props[3],this.e1=this.props[4],this.f1=this.props[5],this.props[0]=this.a1*t+this.c1*e,this.props[1]=this.b1*t+this.d1*e,this.props[2]=this.a1*a+this.c1*i,this.props[3]=this.b1*a+this.d1*i,this.props[4]=this.a1*r+this.c1*n+this.e1,this.props[5]=this.b1*r+this.d1*n+this.f1,this._x()},divide:function(t){if(!t.isInvertible())throw"Input matrix is not invertible";var e=t.inverse();return this._t(e.a,e.b,e.c,e.d,e.e,e.f)},divideScalar:function(t){var e=this;return e.a/=t,e.b/=t,e.c/=t,e.d/=t,e.e/=t,e.f/=t,e._x()},inverse:function(){if(this.isIdentity())return new Matrix;if(this.isInvertible()){var t=this,e=t.a,a=t.b,i=t.c,r=t.d,n=t.e,s=t.f,o=new Matrix,h=e*r-a*i;return o.a=r/h,o.b=-a/h,o.c=-i/h,o.d=e/h,o.e=(i*s-r*n)/h,o.f=-(e*s-a*n)/h,o}throw"Matrix is not invertible."},interpolate:function(t,e,a){var i=this,r=a?new Matrix(a):new Matrix;return r.a=i.a+(t.a-i.a)*e,r.b=i.b+(t.b-i.b)*e,r.c=i.c+(t.c-i.c)*e,r.d=i.d+(t.d-i.d)*e,r.e=i.e+(t.e-i.e)*e,r.f=i.f+(t.f-i.f)*e,r._x()},interpolateAnim:function(t,e,a){var i=this,r=a?new Matrix(a):new Matrix,n=i.decompose(),s=t.decompose(),o=n.rotation+(s.rotation-n.rotation)*e,h=n.translate.x+(s.translate.x-n.translate.x)*e,m=n.translate.y+(s.translate.y-n.translate.y)*e,p=n.scale.x+(s.scale.x-n.scale.x)*e,l=n.scale.y+(s.scale.y-n.scale.y)*e;return r.translate(h,m),r.rotate(o),r.scale(p,l),r._x()},decompose:function(t){var e=this,a=e.a,i=e.b,r=e.c,n=e.d,s=Math.acos,o=Math.atan,h=Math.sqrt,m=Math.PI,p={x:e.e,y:e.f},l=0,c={x:1,y:1},d={x:0,y:0},u=a*n-i*r;if(t)a?(d={x:o(r/a),y:o(i/a)},c={x:a,y:u/a}):i?(l=.5*m,c={x:i,y:u/i},d.x=o(n/i)):(c={x:r,y:n},d.x=.25*m);else if(a||i){var f=h(a*a+i*i);l=i>0?s(a/f):-s(a/f),c={x:f,y:u/f},d.x=o((a*r+i*n)/(f*f))}else if(r||n){var y=h(r*r+n*n);l=.5*m-(n>0?s(-r/y):-s(r/y)),c={x:u/y,y:y},d.y=o((a*r+i*n)/(y*y))}else c={x:0,y:0};return{scale:c,translate:p,rotation:l,skew:d}},determinant:function(){return this.a*this.d-this.b*this.c},applyToPoint:function(t,e){var a=this;return{x:t*a.a+e*a.c+a.e,y:t*a.b+e*a.d+a.f}},applyToArray:function(t){var e,a,i=0,r=[];if("number"==typeof t[0])for(a=t.length;a>i;)e=this.applyToPoint(t[i++],t[i++]),r.push(e.x,e.y);else for(;e=t[i];i++)r.push(this.applyToPoint(e.x,e.y));return r},applyToTypedArray:function(t,e){for(var a,i=0,r=t.length,n=e?new Float64Array(r):new Float32Array(r);r>i;)a=this.applyToPoint(t[i],t[i+1]),n[i++]=a.x,n[i++]=a.y;return n},applyToContext:function(t){var e=this;return t.setTransform(e.a,e.b,e.c,e.d,e.e,e.f),e},isIdentity:function(){var t=this;return t._q(t.a,1)&&t._q(t.b,0)&&t._q(t.c,0)&&t._q(t.d,1)&&t._q(t.e,0)&&t._q(t.f,0)},isInvertible:function(){return!this._q(this.determinant(),0)},isValid:function(){return!this._q(this.a*this.d,0)},clone:function(t){var e=this,a=new Matrix;return a.a=e.a,a.b=e.b,a.c=e.c,a.d=e.d,a.e=e.e,a.f=e.f,t||(a.context=e.context),a},isEqual:function(t){var e=this,a=e._q;return a(e.a,t.a)&&a(e.b,t.b)&&a(e.c,t.c)&&a(e.d,t.d)&&a(e.e,t.e)&&a(e.f,t.f)},toArray:function(){return[this.props[0],this.props[1],this.props[2],this.props[3],this.props[4],this.props[5]]},toCSS:function(){return this.cssParts[1]=this.props.join(","),this.cssParts.join("")},toJSON:function(){var t=this;return'{"a":'+t.a+',"b":'+t.b+',"c":'+t.c+',"d":'+t.d+',"e":'+t.e+',"f":'+t.f+"}"},toString:function(){return""+this.toArray()},_q:function(t,e){return Math.abs(t-e)<1e-14},_x:function(){return this.context&&this.context.setTransform(this.a,this.b,this.c,this.d,this.e,this.f),this}};var MatrixManager=matrixManagerFunction;!function(){for(var t=0,e=["ms","moz","webkit","o"],a=0;a<e.length&&!window.requestAnimationFrame;++a)window.requestAnimationFrame=window[e[a]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e[a]+"CancelAnimationFrame"]||window[e[a]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(e){var a=(new Date).getTime(),i=Math.max(0,16-(a-t)),r=window.setTimeout(function(){e(a+i)},i);return t=a+i,r}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)})}();var subframeEnabled=!1,supportsPath2D="function"==typeof Path2D,cachedColors={},colorMap=[],body,fillColorToString=function(){var t=[];return function(e,a){return t[e[0]]||(t[e[0]]=[]),t[e[0]][e[1]]||(t[e[0]][e[1]]=[]),t[e[0]][e[1]][e[2]]||(void 0!=a&&(e[3]=a),t[e[0]][e[1]][e[2]]="rgba("+e.join(",")+")"),t[e[0]][e[1]][e[2]]}}();createColorMap(),function(){function t(){this.commandArrays=[]}void 0==CanvasRenderingContext2D.prototype.ellipse&&(CanvasRenderingContext2D.prototype.ellipse=function(t,e,a,i,r,n,s,o){this.save(),this.translate(t,e),this.rotate(r),this.scale(a,i),this.arc(0,0,1,n,s,o),this.restore()}),supportsPath2D||(t.prototype.moveTo=function(t,e){this.commandArrays.push({type:"move",coord:[t,e]})},t.prototype.lineTo=function(t,e){this.commandArrays.push({type:"line",coord:[t,e]})},t.prototype.bezierCurveTo=function(t,e,a,i,r,n){this.commandArrays.push({type:"bezierCurve",coord:[t,e,a,i,r,n]})},t.prototype.drawToContext=function(t){var e,a,i=this.commandArrays.length;for(t.beginPath(),a=0;i>a;a+=1)switch(e=this.commandArrays[a],e.type){case"move":t.moveTo(e.coord[0],e.coord[1]);break;case"line":t.lineTo(e.coord[0],e.coord[1]);break;case"bezierCurve":t.bezierCurveTo(e.coord[0],e.coord[1],e.coord[2],e.coord[3],e.coord[4],e.coord[5])}},Path2D=t)}();var bez=bezFunction(),dataManager=dataFunctionManager();SVGRenderer.prototype.buildItems=function(t){var e,a=0,i=t.length;for(e=0;i>e;e++)"StillLayer"==t[e].type?(a++,this.createImage(t[e])):"PreCompLayer"==t[e].type?this.createComp(t[e]):"SolidLayer"==t[e].type?this.createSolid(t[e]):"ShapeLayer"==t[e].type?this.createShape(t[e]):"TextLayer"==t[e].type?this.createText(t[e]):console.log("NO TYPE: ",t[e])},SVGRenderer.prototype.createShape=function(t){t.element=new IShapeElement(t,this.animationItem)},SVGRenderer.prototype.createText=function(t){t.element=new ITextElement(t,this.animationItem)},SVGRenderer.prototype.createImage=function(t){t.element=new IImageElement(t,this.animationItem)},SVGRenderer.prototype.createComp=function(t){t.element=new ICompElement(t,this.animationItem),this.buildItems(t.layers,t.element.getType())},SVGRenderer.prototype.createSolid=function(t){t.element=new ISolidElement(t,this.animationItem)},SVGRenderer.prototype.configAnimation=function(t){this.animationItem.container=document.createElementNS(svgNS,"svg"),this.animationItem.container.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.animationItem.container.setAttribute("width",t.animation.compWidth),this.animationItem.container.setAttribute("height",t.animation.compHeight),this.animationItem.container.setAttribute("viewBox","0 0 "+t.animation.compWidth+" "+t.animation.compHeight),this.animationItem.container.setAttribute("preserveAspectRatio","xMidYMid meet"),this.animationItem.container.style.width="100%",this.animationItem.container.style.height="100%",this.animationItem.container.style.transformOrigin=this.animationItem.container.style.mozTransformOrigin=this.animationItem.container.style.webkitTransformOrigin=this.animationItem.container.style["-webkit-transform"]="0px 0px 0px",this.animationItem.wrapper.appendChild(this.animationItem.container);var e=document.createElementNS(svgNS,"defs");this.animationItem.container.appendChild(e);var a=document.createElementNS(svgNS,"clipPath"),i=document.createElementNS(svgNS,"rect");i.setAttribute("width",t.animation.compWidth),i.setAttribute("height",t.animation.compHeight),i.setAttribute("x",0),i.setAttribute("y",0),a.setAttribute("id","animationMask"),a.appendChild(i);var r=document.createElementNS(svgNS,"g");r.setAttribute("clip-path","url(#animationMask)"),this.animationItem.container.appendChild(r),e.appendChild(a),this.animationItem.container=r,this.layers=t.animation.layers},SVGRenderer.prototype.buildStage=function(t,e){var a,i,r=e.length;for(a=r-1;a>=0;a--){if(i=e[a],i.parent){var n=this.buildItemHierarchy(i.element.getDomElement(),i.layerName,i.parent,e,t);n.setAttribute("data-layer-name",i.layerName),t.appendChild(n),i.element.setMainElement(n)}else i.element.getDomElement().setAttribute("data-layer-name",i.layerName),t.appendChild(i.element.getDomElement()),i.element.setMainElement(i.element.getDomElement());"PreCompLayer"==i.type&&this.buildStage(i.element.getComposingElement(),i.layers,i.element.getType())}},SVGRenderer.prototype.buildItemHierarchy=function(t,e,a,i,r){for(var n=0,s=i.length;s>n;){if(i[n].layerName==a){i[n].relateds||(i[n].relateds=[]);var o,h;return o=document.createElementNS(svgNS,"g"),h=document.createElementNS(svgNS,"g"),i[n].relateds.push({item:o,itemCont:h}),o.appendChild(t),h.appendChild(o),void 0!=i[n].parent?this.buildItemHierarchy(h,e,i[n].parent,i,r):h}n+=1}return null},SVGRenderer.prototype.updateContainerSize=function(){},SVGRenderer.prototype.renderFrame=function(t){if(this.lastFrame!=t){this.lastFrame=t;var e,a=this.layers.length;
for(e=0;a>e;e++)this.layers[e].element.renderFrame(t-this.layers[e].startTime)}},CanvasRenderer.prototype.buildItems=function(t){var e,a=0,i=t.length;for(e=0;i>e;e++)"StillLayer"==t[e].type?(a++,this.createImage(t[e])):"PreCompLayer"==t[e].type?this.createComp(t[e]):"SolidLayer"==t[e].type?this.createSolid(t[e]):"ShapeLayer"==t[e].type?this.createShape(t[e]):"TextLayer"==t[e].type?this.createText(t[e]):console.log("NO TYPE: ",t[e])},CanvasRenderer.prototype.createShape=function(t){t.element=new CVShapeElement(t,this)},CanvasRenderer.prototype.createText=function(t){t.element=new CVTextElement(t,this)},CanvasRenderer.prototype.createImage=function(t){t.element=new CVImageElement(t,this)},CanvasRenderer.prototype.createComp=function(t){t.element=new CVCompElement(t,this),this.buildItems(t.layers)},CanvasRenderer.prototype.createSolid=function(t){t.element=new CVSolidElement(t,this)},CanvasRenderer.prototype.configAnimation=function(t){this.animationItem.container=document.createElement("canvas"),this.animationItem.container.style.width="100%",this.animationItem.container.style.height="100%",this.animationItem.container.style.transformOrigin=this.animationItem.container.style.mozTransformOrigin=this.animationItem.container.style.webkitTransformOrigin=this.animationItem.container.style["-webkit-transform"]="0px 0px 0px",this.animationItem.wrapper.appendChild(this.animationItem.container),this.layers=t.animation.layers,this.canvasContext=this.animationItem.container.getContext("2d"),this.transformCanvas={},this.transformCanvas.w=t.animation.compWidth,this.transformCanvas.h=t.animation.compHeight,this.updateContainerSize()},CanvasRenderer.prototype.updateContainerSize=function(){var t=this.animationItem.wrapper.offsetWidth,e=this.animationItem.wrapper.offsetHeight;this.animationItem.container.setAttribute("width",t),this.animationItem.container.setAttribute("height",e);var a=t/e,i=this.transformCanvas.w/this.transformCanvas.h;i>a?(this.transformCanvas.sx=t/this.transformCanvas.w,this.transformCanvas.sy=t/this.transformCanvas.w,this.transformCanvas.tx=0,this.transformCanvas.ty=(e-this.transformCanvas.h*(t/this.transformCanvas.w))/2):(this.transformCanvas.sx=e/this.transformCanvas.h,this.transformCanvas.sy=e/this.transformCanvas.h,this.transformCanvas.tx=(t-this.transformCanvas.w*(e/this.transformCanvas.h))/2,this.transformCanvas.ty=0)},CanvasRenderer.prototype.buildStage=function(t,e){var a,i,r=e.length;for(a=r-1;a>=0;a--)i=e[a],i.parent&&(i.parentHierarchy=[],this.buildItemHierarchy(i,e,i.parent)),"PreCompLayer"==i.type&&this.buildStage(null,i.layers)},CanvasRenderer.prototype.buildItemHierarchy=function(t,e,a){for(var i=0,r=e.length;r>i;){if(e[i].layerName==a){t.parentHierarchy.push(e[i]),void 0==e[i].parent||this.buildItemHierarchy(t,e,e[i].parent);break}i+=1}},CanvasRenderer.prototype.prepareFrame=function(t){var e,a=this.layers.length;for(e=0;a>e;e++)this.layers[e].element.prepareFrame(t-this.layers[e].startTime)},CanvasRenderer.prototype.draw=function(){var t,e=this.layers.length;for(t=e-1;t>=0;t-=1)this.layers[t].element.draw()},CanvasRenderer.prototype.renderFrame=function(t){this.lastFrame!=t&&(this.lastFrame=t,this.animationItem.container.width=this.animationItem.container.width,this.canvasContext.transform(this.transformCanvas.sx,0,0,this.transformCanvas.sy,this.transformCanvas.tx,this.transformCanvas.ty),this.canvasContext.beginPath(),this.canvasContext.rect(0,0,this.transformCanvas.w,this.transformCanvas.h),this.canvasContext.clip(),this.prepareFrame(t),this.draw())},MaskElement.prototype.init=function(){this.registeredEffects=[],this.masksProperties=this.data.masksProperties,this.totalMasks=this.masksProperties.length;var t=this.element.maskingGroup,e=this.element.maskedElement,a=document.createElementNS(svgNS,"defs");t.appendChild(a);var i,r=this.masksProperties.length;if(this.layerSize=this.element.getLayerSize(),this.usePaths){this.maskElement=document.createElementNS(svgNS,"clipPath");var n,s=this.data.masksProperties;for(i=0;r>i;i++)n=document.createElementNS(svgNS,"path"),s[i].cl?n.setAttribute("fill","#ffffff"):(n.setAttribute("fill","none"),n.setAttribute("stroke","#ffffff"),n.setAttribute("stroke-width","1"),n.setAttribute("stroke-miterlimit","10")),n.setAttribute("clip-rule","nonezero"),this.maskElement.appendChild(n),s[i].elem=n,s[i].lastPath="";var o=randomString(10);this.maskElement.setAttribute("id",o),e.setAttribute("clip-path","url(#"+o+")")}else{this.maskElement=document.createElementNS(svgNS,"mask"),this.canvas=document.createElement("canvas"),this.imageElement=document.createElementNS(svgNS,"image"),this.imageElement.setAttribute("width",this.layerSize.w),this.imageElement.setAttribute("height",this.layerSize.h),this.imageElement.setAttribute("x","0"),this.imageElement.setAttribute("y","0"),this.canvasContext=this.canvas.getContext("2d"),this.canvas.width=this.layerSize.w,this.canvas.height=this.layerSize.h,this.maskElement.appendChild(this.imageElement);var o=randomString(10);this.maskElement.setAttribute("id",o),e.setAttribute("mask","url(#"+o+")")}a.appendChild(this.maskElement)},MaskElement.prototype.createInvertedMask=function(t,e){this.helperCanvas.width=this.layerSize.w,this.helperCanvas.height=this.layerSize.h;var a=this.invertedContext;a.globalCompositeOperation="source-over";var i=t.o[e];if("a"==t.mode)a.fillStyle="rgba(255, 255, 255, "+t.o[e]+")",this.canvasContext.globalCompositeOperation="source-over";else if("s"==t.mode)a.fillStyle="rgba(0, 0, 0, "+i+")",this.canvasContext.globalCompositeOperation="source-over";else if("f"==t.mode)a.fillStyle="rgba(255, 255, 255, "+i+")",this.canvasContext.globalCompositeOperation="xor";else{if("i"!=t.mode)return;a.fillStyle="rgba(255, 255, 255, "+i+")",this.canvasContext.globalCompositeOperation="destination-in"}a.fillRect(0,0,this.helperCanvas.width,this.helperCanvas.height),a.fillStyle="rgba(255, 255, 255, 1)",a.globalCompositeOperation="destination-out",a.beginPath(),this.drawShape(a,t.pathVertices[e][0]),this.canvasContext.drawImage(this.helperCanvas,0,0)},MaskElement.prototype.renderFrame=function(t){var e,a=this.data.masksProperties.length;if(this.usePaths===!0){if("fullSvg"!==this.element.animationItem.animType)for(e=0;a>e;e++)this.drawPath(this.data.masksProperties[e],this.data.masksProperties[e].pathStrings[t])}else{this.canvas.width=this.canvas.width;var i=this.canvasContext;for(e=0;a>e;e++){var r=this.data.masksProperties[e].opacity[t];if(this.masksProperties[e].inv)this.createInvertedMask(this.masksProperties[e],t);else{if("a"==this.masksProperties[e].mode)i.globalCompositeOperation="source-over",i.fillStyle="rgba(255, 255, 255, "+r+")";else if("s"==this.masksProperties[e].mode)i.globalCompositeOperation="source-over",i.fillStyle="rgba(0, 0, 0, "+r+")";else if("f"==this.masksProperties[e].mode)i.globalCompositeOperation="xor",i.fillStyle="rgba(255, 255, 255, "+r+")";else{if("i"!=this.masksProperties[e].mode)continue;i.globalCompositeOperation="destination-in",i.fillStyle="rgba(255, 255, 255, "+r+")"}this.drawShape(i,this.data.masksProperties[e].pathVertices[t][0])}}var n=this.canvas.toDataURL("image/png");this.imageElement.setAttributeNS("http://www.w3.org/1999/xlink","href",n)}},MaskElement.prototype.processMaskFromEffects=function(t,e){var a,i=this.registeredEffects.length;for(a=0;i>a;a++)this.registeredEffects[a].renderMask(t,e)},MaskElement.prototype.registerEffect=function(t){this.registeredEffects.push(t)},MaskElement.prototype.getMaskelement=function(){return this.maskElement},MaskElement.prototype.createLayerSolidPath=function(){var t="M0,0 ";return t+="h"+this.layerSize.w,t+="v"+this.layerSize.h,t+="h"+-this.layerSize.w,t+="v"+-this.layerSize.h},MaskElement.prototype.drawPath=function(t,e){t.lastPath!==e&&(t.inv?t.elem.setAttribute("d",this.createLayerSolidPath()+e):t.elem.setAttribute("d",e),t.lastPath=e)},MaskElement.prototype.drawShape=function(t,e){t.beginPath();var a,i=e.v.length;for(a=0;i>a;a++)0==a?t.moveTo(e.v[a][0],e.v[a][1]):t.bezierCurveTo(e.o[a-1][0]+e.v[a-1][0],e.o[a-1][1]+e.v[a-1][1],e.i[a][0]+e.v[a][0],e.i[a][1]+e.v[a][1],e.v[a][0],e.v[a][1]);t.bezierCurveTo(e.o[a-1][0]+e.v[a-1][0],e.o[a-1][1]+e.v[a-1][1],e.i[0][0]+e.v[0][0],e.i[0][1]+e.v[0][1],e.v[0][0],e.v[0][1]),t.closePath(),t.fill()},defineDescriptor(MaskElement,"helperCanvas",document.createElement("canvas")),defineDescriptor(MaskElement,"helperContext",MaskElement.prototype.helperCanvas.getContext("2d")),defineDescriptor(MaskElement,"data",null,{writable:!0}),defineDescriptor(MaskElement,"element",null),defineDescriptor(MaskElement,"usePaths",!0,{writable:!0}),defineDescriptor(MaskElement,"paths",[],{writable:!0});var BaseElement=function(t,e){this.animationItem=e,this.data=t,this.init()};BaseElement.prototype.init=function(){this.createElements(),this.data.hasMask&&this.addMasks(this.data),this.data.eff&&this.createEffectsManager(this.data)},BaseElement.prototype.createElements=function(){this.layerElement=document.createElementNS(svgNS,"g"),this.anchorElement=document.createElementNS(svgNS,"g"),this.anchorElement.setAttribute("id",this.data.layerName),this.layerElement.appendChild(this.anchorElement),this.maskingGroup=this.anchorElement,this.maskedElement=this.anchorElement},BaseElement.prototype.renderFrame=function(t){if(!(this.data.inPoint-this.data.startTime<=t&&this.data.outPoint-this.data.startTime>t))return this.isVisible!==!1&&(this.isVisible=!1,this.mainElement.setAttribute("opacity",0)),!1;if(this.isVisible!==!0&&(this.isVisible=!0,this.mainElement.setAttribute("opacity",1)),this.currentAnimData=this.data.renderedData[t].an,this.data.eff&&this.effectsManager.renderFrame(t,this.currentAnimData.mk),t===this.data.renderedFrame.num)return!0;this.data.hasMask&&this.maskManager.renderFrame(t),this.data.renderedFrame.o!==this.currentAnimData.tr.o&&(this.data.renderedFrame.o=this.currentAnimData.tr.o,this.anchorElement.setAttribute("opacity",this.currentAnimData.tr.o));var e=!1;(!this.data.renderedFrame.a||this.data.renderedFrame.a[0]!==this.currentAnimData.tr.a[0]&&this.data.renderedFrame.a[1]!==this.currentAnimData.tr.a[1])&&(this.data.renderedFrame.a=[this.currentAnimData.tr.a[0],this.currentAnimData.tr.a[1]],this.anchorElement.setAttribute("transform","translate("+-this.currentAnimData.tr.a[0]+" "+-this.currentAnimData.tr.a[1]+")"),e=!0);var a=!1;if(this.data.renderedFrame.tr!==this.currentAnimData.matrixValue&&(this.layerElement.setAttribute("transform",this.currentAnimData.matrixValue),this.data.renderedFrame.tr=this.currentAnimData.matrixValue,a=!0),this.data.relateds&&(a||e)){var i,r,n,s=this.data.relateds,o=s.length;for(i=0;o>i;i++)r=s[i].item,n=s[i].itemCont,e&&r.setAttribute("transform","translate("+-this.currentAnimData.tr.a[0]+" "+-this.currentAnimData.tr.a[1]+")"),a&&n.setAttribute("transform",this.currentAnimData.matrixValue)}return!0},BaseElement.prototype.getDomElement=function(){return this.layerElement},BaseElement.prototype.setMainElement=function(t){this.mainElement=t},BaseElement.prototype.getMaskManager=function(){return this.maskManager},BaseElement.prototype.addMasks=function(t){var e={data:{value:t},element:{value:this}};this.maskManager=createElement(MaskElement,null,e)},BaseElement.prototype.createEffectsManager=function(t){var e={effects:{value:t.eff},element:{value:this}};this.effectsManager=createElement(EffectsManager,null,e)},BaseElement.prototype.getType=function(){return this.type},BaseElement.prototype.getLayerSize=function(){return"TextLayer"==this.data.type?{w:this.data.textData.width,h:this.data.textData.height}:{w:this.data.width,h:this.data.height}},createElement(BaseElement,ICompElement),ICompElement.prototype.createElements=function(){this.svgElem=document.createElementNS(svgNS,"g"),this.parent.createElements.call(this)},ICompElement.prototype.getComposingElement=function(){return this.anchorElement},ICompElement.prototype.renderFrame=function(t){var e=this.parent.renderFrame.call(this,t);if(e!==!1){var a,i=this.layers.length,r=this.data.tm?this.data.tm[t]<0?0:this.data.tm[t]:t;for(a=0;i>a;a+=1)this.layers[a].element.renderFrame(r-this.layers[a].startTime)}},createElement(BaseElement,IImageElement),IImageElement.prototype.createElements=function(){var t=this,e=function(){t.image.setAttributeNS("http://www.w3.org/1999/xlink","href",t.path+t.assets[t.data.assetId].path),t.maskedElement=t.image,t.animationItem.elementLoaded()},a=new Image;a.addEventListener("load",e,!1),a.src=this.path+this.assets[this.data.assetId].path,this.svgElem=document.createElementNS(svgNS,"g"),this.parent.createElements.call(this),this.image=document.createElementNS(svgNS,"image"),this.image.setAttribute("width",this.data.width+"px"),this.image.setAttribute("height",this.data.height+"px"),this.svgElem.appendChild(this.image),this.anchorElement.appendChild(this.svgElem),this.maskingGroup=this.svgElem,styleUnselectableDiv(this.image)},createElement(BaseElement,IShapeElement),IShapeElement.prototype.createElements=function(){this.svgElem=document.createElementNS(svgNS,"g"),styleUnselectableDiv(this.svgElem),this.parent.createElements.call(this),this.anchorElement.appendChild(this.svgElem);var t,e,a=this.data.shapes.length;for(t=a-1;t>=0;t--)this.data.trim&&(this.data.shapes[t].trim=this.data.trim),e=new ShapeItemElement(this.data.shapes[t]),this.svgElem.appendChild(e.getElement()),this.shapes.push(e)},IShapeElement.prototype.renderFrame=function(t){var e=this.parent.renderFrame.call(this,t);e!==!1&&this.renderShapes(t)},IShapeElement.prototype.renderShapes=function(t){var e,a,i,r=this.data.shapes.length;for(e=r-1;e>=0;e--)a=this.data.shapes[e],i=this.shapes[r-1-e],i.renderShape(t)},ShapeItemElement.prototype.adjustTrim=function(){var t,e=this.data.trim,a=e.length;for(t=0;a>t;t+=1)e[t].o&&(e[t].o-=90)},ShapeItemElement.prototype.getElement=function(){return this.shapeG},ShapeItemElement.prototype.renderShape=function(t){this.currentData=this.data.renderedData[t],"pathShape"==this.data.type?this.pathLength=this.renderPath(t):"rectShape"==this.data.type?this.renderRect(t):"ellipseShape"==this.data.type&&(this.pathLength=this.renderEllipse(t)),this.data.trim&&this.renderTrim(t),this.renderFill(t),this.renderStroke(t),this.renderTransform(t)},ShapeItemElement.prototype.renderPath=function(){var t=this.currentData,e=t.path;return e.pathString!=this.renderedFrame.path?(this.renderedFrame.path=e.pathString,this.shape.setAttribute("d",e.pathString),this.data.trim?(null==this.cachedData.pathLengths&&(this.cachedData.pathLengths={}),null==this.cachedData.pathLengths[e.pathString]&&(this.cachedData.pathLengths[e.pathString]=this.shape.getTotalLength()),this.cachedData.pathLengths[e.pathString]):void 0):this.data.trim?this.cachedData.pathLengths[e.pathString]:void 0},ShapeItemElement.prototype.renderEllipse=function(t){var e=this.currentData.ell;if(this.renderedFrame.ellipse.rx!=e.size[0]&&(this.shape.setAttribute("rx",e.size[0]/2),this.renderedFrame.ellipse.rx=e.size[0]),this.renderedFrame.ellipse.ry!=e.size[1]&&(this.shape.setAttribute("ry",e.size[1]/2),this.renderedFrame.ellipse.ry=e.size[1]),this.renderedFrame.ellipse.cx!=e.p[0]&&(this.shape.setAttribute("cx",e.p[0]),this.renderedFrame.ellipse.ry=e.p[0]),this.renderedFrame.ellipse.cy!=e.p[1]&&(this.shape.setAttribute("cy",e.p[1]),this.renderedFrame.ellipse.ry=e.p[1]),this.data.trim){if(null==this.cachedData.pathLengths&&(this.cachedData.pathLengths={}),null==this.cachedData.pathLengths["ellipse_"+t])if(e.size[0]==e.size[1])this.cachedData.pathLengths["ellipse_"+t]=Math.PI*e.size[0];else{var a=Math.max(e.size[0],e.size[1])/2,i=Math.max(e.size[0],e.size[1])/2,r=(a-i)/(a+i),n=(a+i)*Math.PI*(1+.25*r+1/64*Math.pow(r,2)+1/256*Math.pow(r,3));this.cachedData.pathLengths["ellipse_"+t]=n}return this.cachedData.pathLengths["ellipse_"+t]}},ShapeItemElement.prototype.renderRect=function(){var t=this.currentData;if(t.rect){var e=t.rect;this.renderedFrame.rect.rx!=e.roundness&&(this.shape.setAttribute("rx",e.roundness),this.shape.setAttribute("ry",e.roundness),this.renderedFrame.rect.rx=e.roundness),this.renderedFrame.rect.width!=e.size[0]&&(this.shape.setAttribute("width",e.size[0]),this.renderedFrame.rect.width=e.size[0]),this.renderedFrame.rect.height!=e.size[1]&&(this.shape.setAttribute("height",e.size[1]),this.renderedFrame.rect.height=e.size[1]),this.renderedFrame.rect.x!=e.position[0]-e.size[0]&&(this.shape.setAttribute("x",e.position[0]-e.size[0]/2),this.renderedFrame.rect.x=e.position[0]-e.size[0]),this.renderedFrame.rect.y!=e.position[1]-e.size[1]&&(this.shape.setAttribute("y",e.position[1]-e.size[1]/2),this.renderedFrame.rect.y=e.position[1]-e.size[1])}},ShapeItemElement.prototype.renderFill=function(){var t=this.currentData;if(t.fill){var e=t.fill;this.renderedFrame.fill.color!==e.color&&(this.shape.setAttribute("fill",e.color),this.renderedFrame.fill.color=e.color),this.data.fillEnabled!==!1?this.renderedFrame.fill.opacity!==e.opacity&&(this.shape.setAttribute("fill-opacity",e.opacity),this.renderedFrame.fill.opacity=e.opacity):0!==this.renderedFrame.fill.opacity&&(this.shape.setAttribute("fill-opacity",0),this.renderedFrame.fill.opacity=0)}else 0!==this.renderedFrame.fill.opacity&&(this.shape.setAttribute("fill-opacity",0),this.renderedFrame.fill.opacity=0)},ShapeItemElement.prototype.renderStroke=function(){var t=this.currentData;if(t.stroke){var e=t.stroke;this.renderedFrame.stroke.color!==e.color&&(this.renderedFrame.stroke.color=e.color,this.shape.setAttribute("stroke",e.color)),this.renderedFrame.stroke.width!==e.width&&(this.renderedFrame.stroke.width=e.width,this.shape.setAttribute("stroke-width",e.width)),this.renderedFrame.stroke.width!==e.width&&(this.renderedFrame.stroke.width=e.width,this.shape.setAttribute("stroke-width",e.width)),this.data.strokeEnabled!==!1?this.renderedFrame.stroke.opacity!==e.opacity&&(this.renderedFrame.stroke.opacity=e.opacity,this.shape.setAttribute("stroke-opacity",e.opacity)):0!==this.renderedFrame.stroke.opacity&&(this.renderedFrame.stroke.opacity=0,this.shape.setAttribute("stroke-opacity",0))}},ShapeItemElement.prototype.renderTransform=function(){var t=this.currentData;if(t.tr){var e=t.tr;this.renderedFrame.tr.o!==e.o&&(this.renderedFrame.tr.o=e.o,this.shapeG.setAttribute("opacity",e.o)),this.renderedFrame.tr.mt!==e.mt&&(this.renderedFrame.tr.mt=e.mt,this.shapeG.setAttribute("transform",e.mt)),(this.renderedFrame.tr.a[0]!==e.a[0]||this.renderedFrame.tr.a[1]!==e.a[1])&&(this.renderedFrame.tr.a[0]=e.a[0],this.renderedFrame.tr.a[1]=e.a[1],this.shape.setAttribute("transform","translate("+-e.a[0]+", "+-e.a[1]+")"))}},ShapeItemElement.prototype.renderTrim=function(){var t=this.currentData.trim;if(0==this.pathLength)this.shape.setAttribute("stroke-opacity",0);else{this.renderedFrame.trim.e==t.e&&this.renderedFrame.trim.s==t.s&&this.renderedFrame.trim.o==t.o,this.renderedFrame.trim.e=t.e,this.renderedFrame.trim.s=t.s,this.renderedFrame.trim.o=t.o;var e=this.pathLength*(t.e-t.s)/100,a=this.pathLength-e,i=this.pathLength*t.s/100+this.pathLength*t.o/360,r=e+" , "+a;this.shape.setAttribute("stroke-dasharray",r),this.shape.setAttribute("stroke-dashoffset",this.pathLength-i),t.e==t.s?this.shape.setAttribute("stroke-opacity",0):this.currentData.stroke&&(this.data.strokeEnabled!==!1?this.shape.setAttribute("stroke-opacity",this.currentData.stroke.opacity):this.shape.setAttribute("stroke-opacity",0))}},createElement(BaseElement,ISolidElement),ISolidElement.prototype.createElements=function(){this.svgElem=document.createElementNS(svgNS,"g"),this.parent.createElements.call(this),this.anchorElement.appendChild(this.svgElem);var t=document.createElementNS(svgNS,"rect");t.setAttribute("width",this.data.width),t.setAttribute("height",this.data.height),t.setAttribute("fill",this.data.color),this.svgElem.appendChild(t),styleUnselectableDiv(this.svgElem),styleUnselectableDiv(t),this.maskingGroup=this.svgElem,this.maskedElement=t},createElement(BaseElement,ITextElement),ITextElement.prototype.createElements=function(){this.svgElem=document.createElementNS(svgNS,"g");var t=document.createElementNS(svgNS,"text");t.textContent=this.data.textData.text,t.setAttribute("fill",this.data.textData.fillColor),t.setAttribute("x","0"),t.setAttribute("y",this.data.textData.height-(this.data.textData.fontSize-this.data.textData.height)/2),this.svgElem.setAttribute("width",this.data.textData.width),this.svgElem.setAttribute("height",this.data.textData.height),this.svgElem.style.transform="translate("+this.data.textData.xOffset+"px,"+this.data.textData.yOffset+"px)",this.svgElem.style["-webkit-transform"]="translate("+this.data.textData.xOffset+"px,"+this.data.textData.yOffset+"px)",t.setAttribute("font-size",this.data.textData.fontSize),t.setAttribute("font-family","Arial, sans-serif"),this.svgElem.appendChild(t),this.parent.createElements.call(this),this.anchorElement.appendChild(this.svgElem),this.maskingGroup=this.svgElem,this.maskedElement=t},CVBaseElement.prototype.init=function(){this.createElements(),this.data.hasMask&&this.addMasks(this.data),this.data.eff&&this.createEffectsManager(this.data)},CVBaseElement.prototype.createElements=function(){},CVBaseElement.prototype.prepareFrame=function(t){return this.data.inPoint-this.data.startTime<=t&&this.data.outPoint-this.data.startTime>t?(this.currentAnimData=this.data.renderedData[t].an,void(this.data.hasMask&&this.maskManager.prepareFrame(t))):(this.currentAnimData=null,!1)},CVBaseElement.prototype.initDraw=function(){},CVBaseElement.prototype.draw=function(t){if(t!==!1&&this.renderer.canvasContext.save(),!this.currentAnimData)return!1;var e,a=this.renderer.canvasContext;if(this.data.parentHierarchy){var i,r,n=this.data.parentHierarchy.length;for(i=n-1;i>=0;i-=1)r=this.data.parentHierarchy[i].element.getCurrentAnimData(),e=r.matrixArray,a.transform(e[0],e[1],e[2],e[3],e[4],e[5]),a.translate(-r.tr.a[0],-r.tr.a[1])}a.globalAlpha=a.globalAlpha*this.currentAnimData.tr.o,e=this.currentAnimData.matrixArray,a.transform(e[0],e[1],e[2],e[3],e[4],e[5]),a.translate(-this.currentAnimData.tr.a[0],-this.currentAnimData.tr.a[1]),this.data.hasMask&&this.maskManager.draw(),t!==!1&&this.renderer.canvasContext.restore()},CVBaseElement.prototype.endDraw=function(){},CVBaseElement.prototype.getCurrentAnimData=function(){return this.currentAnimData},CVBaseElement.prototype.addMasks=function(t){var e={data:{value:t},element:{value:this}};this.maskManager=createElement(CVMaskElement,null,e)},CVBaseElement.prototype.createEffectsManager=function(t){var e={effects:{value:t.eff},element:{value:this}};this.effectsManager=createElement(EffectsManager,null,e)},CVBaseElement.prototype.getType=function(){return this.type},CVBaseElement.prototype.getLayerSize=function(){return"TextLayer"==this.data.type?{w:this.data.textData.width,h:this.data.textData.height}:{w:this.data.width,h:this.data.height}},createElement(CVBaseElement,CVCompElement),CVCompElement.prototype.prepareFrame=function(t){var e=this.parent.prepareFrame.call(this,t);if(e!==!1){var a,i=this.layers.length,r=this.data.tm?this.data.tm[t]<0?0:this.data.tm[t]:t;for(a=0;i>a;a+=1)this.layers[a].element.prepareFrame(r-this.layers[a].startTime)}},CVCompElement.prototype.draw=function(){this.renderer.canvasContext.save(),this.parent.draw.call(this,!1);var t,e=this.layers.length;for(t=e-1;t>=0;t-=1)this.layers[t].element.draw();this.renderer.canvasContext.restore()},createElement(CVBaseElement,CVImageElement),CVImageElement.prototype.createElements=function(){var t=this,e=function(){t.animationItem.elementLoaded()};this.img=new Image,this.img.addEventListener("load",e,!1),this.img.src=this.path+this.assets[this.data.assetId].path,this.parent.createElements.call(this)},CVImageElement.prototype.draw=function(){this.renderer.canvasContext.save();var t=this.parent.draw.call(this,!1);if(t!==!1){var e=this.renderer.canvasContext;e.drawImage(this.img,0,0),this.renderer.canvasContext.restore()}},createElement(CVBaseElement,CVShapeElement),CVShapeElement.prototype.createElements=function(){this.parent.createElements.call(this);var t,e,a=this.data.shapes.length;for(t=a-1;t>=0;t--)this.data.trim&&(this.data.shapes[t].trim=this.data.trim),e=new CVShapeItemElement(this.data.shapes[t],this.renderer),this.shapes.push(e)},CVShapeElement.prototype.prepareFrame=function(t){var e=this.parent.prepareFrame.call(this,t);if(e!==!1){var a,i=this.data.shapes.length;for(a=i-1;a>=0;a--)this.shapes[i-1-a].prepareFrame(t)}},CVShapeElement.prototype.draw=function(){this.renderer.canvasContext.save();var t=this.parent.draw.call(this,!1);t!==!1&&(this.drawShapes(),this.renderer.canvasContext.restore())},CVShapeElement.prototype.drawShapes=function(){var t,e=this.data.shapes.length;for(t=e-1;t>=0;t--)this.shapes[e-1-t].renderShape()},CVShapeItemElement.prototype.adjustTrim=function(){var t,e=this.data.trim,a=e.length;for(t=0;a>t;t+=1)e[t].o&&(e[t].o-=90)},CVShapeItemElement.prototype.renderShape=function(){if(""!==this.data.type){var t=this.frameNum;this.currentData=this.data.renderedData[t];var e=this.renderer.canvasContext,a=this.renderTransform(t);"pathShape"==this.data.type?this.data.trim?this.renderTrimPath(t):this.renderPath(t):"rectShape"==this.data.type?this.renderRect(t):"ellipseShape"==this.data.type&&(this.pathLength=this.renderEllipse(t)),this.renderFill(t),this.renderStroke(t),this.renderer.canvasContext.lineCap="round",this.renderer.canvasContext.lineJoin="round",this.renderedPaths[t]?supportsPath2D?(this.renderer.canvasContext.fill(this.renderedPaths[t]),this.renderer.canvasContext.stroke(this.renderedPaths[t])):(this.renderedPaths[t].drawToContext(this.renderer.canvasContext),this.renderer.canvasContext.fill(),this.renderer.canvasContext.stroke()):(this.renderer.canvasContext.fill(),this.renderer.canvasContext.stroke()),a&&e.restore()}},CVShapeItemElement.prototype.prepareFrame=function(t){this.frameNum=t},CVShapeItemElement.prototype.renderTransform=function(){var t=this.currentData;if(t.tr){var e=!1,a=this.renderer.canvasContext,i=t.tr,r=i.mtArr;return(1!==r[0]||0!==r[1]||0!==r[2]||1!==r[3]||0!==r[4]||0!==r[5])&&(a.save(),a.transform(r[0],r[1],r[2],r[3],r[4],r[5]),e=!0),(0!=i.a[0]||0!=i.a[1])&&(a.translate(-i.a[0],-i.a[1]),e||(a.save(),e=!0)),i.o<1&&(a.globalAlpha*=i.o,e||(a.save(),e=!0)),e}},CVShapeItemElement.prototype.addToTrim=function(t,e,a){this.trims[t]||this.trims.push({}),this.trims[t].s=e,this.trims[t].e=a,this.trims[t].ended=!1},CVShapeItemElement.prototype.renderTrimPath=function(t){var e=this.currentData.trim;if(e.e!=e.s&&!this.renderedPaths[t]){var a,i=new Path2D,r=this.currentData.path,n=r.pathNodes,s=[],o=0,h=n.v.length;for(a=0;h-1>a;a+=1)s.push(bez.drawBezierCurve(n.v[a],n.v[a+1],n.o[a],n.i[a+1])),o+=s[a].segmentLength;r.closed&&(s.push(bez.drawBezierCurve(n.v[a],n.v[0],n.o[a],n.i[0])),o+=s[a].segmentLength),h=s.length;var m=o*(e.e-e.s)/100;e.o=e.o%360,e.o<0&&(e.o+=360);var p=(e.s/100+e.o/360)%1*o,l=0;if(p+m-o>1e-5){var c=p+m-o;this.addToTrim(0,p,p+m-c),this.addToTrim(1,0,p+m-o),l+=2}else this.addToTrim(0,p,p+m),l+=1;var d,u,f,y,g,v=0,E=!1,b=this.trims.length;for(a=0;h>a&&!E;a+=1){for(u=s[a].points.length,y=!0,g=0;b>g;g+=1)v+s[a].segmentLength>this.trims[g].s&&(y=!1);if(y)v+=s[a].segmentLength;else{var x,C;for(d=0;u-1>d&&!E;d+=1)for(b=this.trims.length,x=s[a].points[d],C=s[a].points[d+1],v+=x.partialLength,g=0;b>g;g+=1)if(!this.trims[g].ended)if(this.trims[g].s>=v&&this.trims[g].s<v+C.partialLength&&(f=(this.trims[g].s-v)/C.partialLength,i.moveTo(x.point[0]+(C.point[0]-x.point[0])*f,x.point[1]+(C.point[1]-x.point[1])*f)),this.trims[g].e>v&&this.trims[g].e<=v+C.partialLength){if(f=(this.trims[g].e-v)/C.partialLength,i.lineTo(x.point[0]+(C.point[0]-x.point[0])*f,x.point[1]+(C.point[1]-x.point[1])*f),l-=1,this.trims[g].ended=!0,0==l){E=!0;break}}else v>this.trims[g].s&&v<this.trims[g].e&&i.lineTo(x.point[0],x.point[1]);this.renderedPaths[t]=i}}}},CVShapeItemElement.prototype.renderPath=function(t){var e=this.currentData,a=e.path;if(!this.renderedPaths[t]){var i=new Path2D,r=this.renderer.canvasContext,n=a.pathNodes;n instanceof Array&&(n=n[0]);var s,o=n.i.length;for(r.beginPath(),i.moveTo(n.v[0][0],n.v[0][1]),s=1;o>s;s+=1)i.bezierCurveTo(n.o[s-1][0],n.o[s-1][1],n.i[s][0],n.i[s][1],n.v[s][0],n.v[s][1]);a.closed&&i.bezierCurveTo(n.o[s-1][0],n.o[s-1][1],n.i[0][0],n.i[0][1],n.v[0][0],n.v[0][1]),this.renderedPaths[t]=i}},CVShapeItemElement.prototype.renderEllipse=function(){var t=this.currentData.ell,e=this.renderer.canvasContext;e.beginPath(),e.ellipse(t.p[0],t.p[1],t.size[0]/2,t.size[1]/2,0,0,2*Math.PI,!0),e.closePath()},CVShapeItemElement.prototype.renderRect=function(){var t=this.currentData.rect,e=t.roundness,a=this.renderer.canvasContext;if(a.beginPath(),0==e)a.rect(t.position[0]-t.size[0]/2,t.position[1]-t.size[1]/2,t.size[0],t.size[1]);else{var i=t.position[0]-t.size[0]/2,r=t.position[1]-t.size[1]/2,n=t.size[0],s=t.size[1];e instanceof Array&&(e=e[0]),a.moveTo(i+e,r),a.lineTo(i+n-e,r),a.quadraticCurveTo(i+n,r,i+n,r+e),a.lineTo(i+n,r+s-e),a.quadraticCurveTo(i+n,r+s,i+n-e,r+s),a.lineTo(i+e,r+s),a.quadraticCurveTo(i,r+s,i,r+s-e),a.lineTo(i,r+e),a.quadraticCurveTo(i,r,i+e,r)}},CVShapeItemElement.prototype.renderFill=function(){var t=this.currentData;if(t.fill){var e=t.fill;if(this.data.fillEnabled!==!1)return void(this.renderer.canvasContext.fillStyle=e.opacity<1?fillColorToString(e.color,e.opacity):fillColorToString(e.color))}this.renderer.canvasContext.fillStyle="rgba(0,0,0,0)"},CVShapeItemElement.prototype.renderStroke=function(){var t=this.currentData;if(t.stroke){var e=t.stroke;if(this.renderer.canvasContext.lineWidth=e.width,this.data.strokeEnabled!==!1)return void(this.renderer.canvasContext.strokeStyle=e.opacity<1?fillColorToString(e.color,e.opacity):fillColorToString(e.color))}this.renderer.canvasContext.strokeStyle="rgba(0,0,0,0)"},createElement(CVBaseElement,CVSolidElement),CVSolidElement.prototype.draw=function(){this.renderer.canvasContext.save(),this.parent.draw.call(this,!1);var t=this.renderer.canvasContext;t.fillStyle=this.data.color,t.fillRect(0,0,this.data.width,this.data.height),this.renderer.canvasContext.restore()},createElement(CVBaseElement,CVTextElement),CVTextElement.prototype.createElements=function(){this.svgElem=document.createElementNS(svgNS,"g");var t=document.createElementNS(svgNS,"text");t.textContent=this.data.textData.text,t.setAttribute("fill",this.data.textData.fillColor),t.setAttribute("x","0"),t.setAttribute("y",this.data.textData.height-(this.data.textData.fontSize-this.data.textData.height)/2),this.svgElem.setAttribute("width",this.data.textData.width),this.svgElem.setAttribute("height",this.data.textData.height),this.svgElem.style.transform="translate("+this.data.textData.xOffset+"px,"+this.data.textData.yOffset+"px)",this.svgElem.style["-webkit-transform"]="translate("+this.data.textData.xOffset+"px,"+this.data.textData.yOffset+"px)",t.setAttribute("font-size",this.data.textData.fontSize),t.setAttribute("font-family","Arial, sans-serif"),this.svgElem.appendChild(t),this.parent.createElements.call(this),this.anchorElement.appendChild(this.svgElem),this.maskingGroup=this.svgElem,this.maskedElement=t},CVMaskElement.prototype.init=function(){this.registeredEffects=[],this.masksProperties=this.data.masksProperties,this.totalMasks=this.masksProperties.length,this.ctx=this.element.renderer.canvasContext,this.layerSize=this.element.getLayerSize()},CVMaskElement.prototype.prepareFrame=function(t){this.frameNum=t},CVMaskElement.prototype.draw=function(){var t,e=this.data.masksProperties.length;for(t=0;e>t;t++)this.masksProperties[t].inv?this.createInvertedMask(this.masksProperties[t],this.frameNum):this.drawShape(this.ctx,this.data.masksProperties[t].pathVertices[this.frameNum][0])},CVMaskElement.prototype.drawShape=function(t,e){t.beginPath();var a,i=e.v.length;for(t.moveTo(e.v[0][0],e.v[0][1]),a=1;i>a;a++)t.bezierCurveTo(e.o[a-1][0],e.o[a-1][1],e.i[a][0],e.i[a][1],e.v[a][0],e.v[a][1]);t.bezierCurveTo(e.o[a-1][0],e.o[a-1][1],e.i[0][0],e.i[0][1],e.v[0][0],e.v[0][1]),t.closePath(),t.clip()};var animationManager=function(){function t(t){if(t){for(var e=0;y>e;){if(d[e].elem==t)return;
e+=1}var a=new AnimationItem;return a.setData(t),d.push({elem:t,animation:a}),y+=1,a}}function e(t,e){var a;for(a=0;y>a;a+=1)d[a].animation.setSpeed(t,e)}function a(t,e){var a;for(a=0;y>a;a+=1)d[a].animation.setDirection(t,e)}function i(t){var e;for(e=0;y>e;e+=1)d[e].animation.play(t)}function r(t,e){f=!1,u=Date.now();var a;for(a=0;y>a;a+=1)d[a].animation.moveFrame(t,e)}function n(){var t,e=Date.now(),a=e-u;for(t=0;y>t;t+=1)d[t].animation.advanceTime(a);u=e,requestAnimationFrame(n)}function s(t){var e;for(e=0;y>e;e+=1)d[e].animation.pause(t)}function o(t){var e;for(e=0;y>e;e+=1)d[e].animation.stop(t)}function h(t){var e;for(e=0;y>e;e+=1)d[e].animation.togglePause(t)}function m(){var e=document.getElementsByClassName("bodymovin");Array.prototype.forEach.call(e,t)}function p(){var t;for(t=0;y>t;t+=1)d[t].animation.resize()}function l(){u=Date.now(),requestAnimationFrame(n)}var c={},d=[],u=0,f=!0,y=0;return setTimeout(l,0),c.registerAnimation=t,c.setSpeed=e,c.setDirection=a,c.play=i,c.moveFrame=r,c.pause=s,c.stop=o,c.togglePause=h,c.searchAnimations=m,c.resize=p,c.start=l,c}(),AnimationItem=function(){this.name="",this.path="",this.isLoaded=!1,this.currentFrame=0,this.currentRawFrame=0,this.totalFrames=0,this.frameRate=0,this.frameMult=0,this.playSpeed=1,this.playDirection=1,this.pendingElements=0,this.playCount=0,this.prerenderFramesFlag=!0,this.repeat="indefinite",this.animationData={},this.layers=[],this.assets=[],this.isPaused=!0,this.isScrolling=!1,this.loop=!0,this.renderer=null,this.animationID=randomString(10),this.renderedFrameCount=0,this.math=Math};AnimationItem.prototype.setData=function(t){this.wrapper=t;var e=this,a=this.wrapper.attributes;switch(this.path=a.getNamedItem("data-animation-path")?a.getNamedItem("data-animation-path").value:a.getNamedItem("data-bm-path")?a.getNamedItem("data-bm-path").value:a.getNamedItem("bm-path")?a.getNamedItem("bm-path").value:"",this.animType=a.getNamedItem("data-anim-type")?a.getNamedItem("data-anim-type").value:a.getNamedItem("data-bm-type")?a.getNamedItem("data-bm-type").value:a.getNamedItem("bm-type")?a.getNamedItem("bm-type").value:"canvas",this.animType){case"canvas":this.renderer=new CanvasRenderer(this);break;case"svg":this.renderer=new SVGRenderer(this)}this.repeat=a.getNamedItem("data-anim-repeat")?a.getNamedItem("data-anim-repeat").value:this.repeat;var i=a.getNamedItem("data-anim-loop")?a.getNamedItem("data-anim-loop").value:a.getNamedItem("data-bm-loop")?a.getNamedItem("data-bm-loop").value:a.getNamedItem("bm-loop")?a.getNamedItem("bm-loop").value:"";""==i||(this.loop="false"===i?!1:"true"===i?!0:parseInt(i)),this.name=a.getNamedItem("data-name")?a.getNamedItem("data-name").value:a.getNamedItem("data-bm-name")?a.getNamedItem("data-bm-name").value:a.getNamedItem("bm-name")?a.getNamedItem("bm-name").value:"";var r=a.getNamedItem("data-anim-prerender")?a.getNamedItem("data-anim-prerender").value:a.getNamedItem("data-bm-prerender")?a.getNamedItem("data-bm-prerender").value:a.getNamedItem("bm-prerender")?a.getNamedItem("bm-prerender").value:"";if("false"===r&&(this.prerenderFramesFlag=!1),""!=this.path){"/"!=this.path.substr(-1,1)&&(this.path+="/");var n=new XMLHttpRequest;n.open("GET",this.path+"data.json",!0),n.send(),n.onreadystatechange=function(){if(4==n.readyState)if(200==n.status)e.configAnimation(JSON.parse(n.responseText));else try{var t=JSON.parse(n.responseText);e.configAnimation(t)}catch(a){}}}},AnimationItem.prototype.configAnimation=function(t){this.renderer.configAnimation(t),this.animationData=t,this.animationData._id=this.animationID,this.animationData._animType=this.animType,this.layers=this.animationData.animation.layers,this.assets=this.animationData.assets,this.totalFrames=this.animationData.animation.totalFrames,this.frameRate=this.animationData.animation.frameRate,this.frameMult=this.animationData.animation.frameRate/1e3,dataManager.completeData(this.animationData),this.renderer.buildItems(this.animationData.animation.layers),this.updaFrameModifier(),this.checkLoaded()},AnimationItem.prototype.elementLoaded=function(){this.pendingElements--,this.checkLoaded()},AnimationItem.prototype.checkLoaded=function(){this.renderer.buildStage(this.container,this.layers),0==this.pendingElements&&(this.prerenderFramesFlag?(this.prerenderFrames(0),dataManager.renderFrame(this.animationID,this.currentFrame),this.renderer.renderFrame(this.currentFrame)):(this.isLoaded=!0,this.gotoFrame()))},AnimationItem.prototype.prerenderFrames=function(t){t||(t=0),this.renderedFrameCount===this.totalFrames?(this.isLoaded=!0,this.gotoFrame()):(dataManager.renderFrame(this.animationID,this.renderedFrameCount),this.renderedFrameCount+=1,t>5?setTimeout(this.prerenderFrames.bind(this),0):(t+=1,this.prerenderFrames(t)))},AnimationItem.prototype.resize=function(){this.renderer.updateContainerSize()},AnimationItem.prototype.gotoFrame=function(){this.currentFrame=subframeEnabled?this.math.round(100*this.currentRawFrame)/100:this.math.floor(this.currentRawFrame),this.renderFrame()},AnimationItem.prototype.renderFrame=function(){this.isLoaded!==!1&&(dataManager.renderFrame(this.animationID,this.currentFrame),this.renderer.renderFrame(this.currentFrame))},AnimationItem.prototype.play=function(t){t&&this.name!=t||this.isPaused===!0&&(this.isPaused=!1)},AnimationItem.prototype.pause=function(t){t&&this.name!=t||this.isPaused===!1&&(this.isPaused=!0)},AnimationItem.prototype.togglePause=function(t){t&&this.name!=t||(this.isPaused===!0?(this.isPaused=!1,this.play()):(this.isPaused=!0,this.pause()))},AnimationItem.prototype.stop=function(t){t&&this.name!=t||(this.isPaused=!0,this.currentFrame=this.currentRawFrame=0,this.playCount=0,this.gotoFrame())},AnimationItem.prototype.goToAndStop=function(t){this.isPaused=!0,this.currentFrame=this.currentRawFrame=t,this.playCount=0,this.gotoFrame()},AnimationItem.prototype.advanceTime=function(t){this.isPaused!==!0&&this.isScrolling!==!0&&this.isLoaded!==!1&&this.setCurrentRawFrameValue(this.currentRawFrame+t*this.frameModifier)},AnimationItem.prototype.updateAnimation=function(t){this.setCurrentRawFrameValue(this.totalFrames*t)},AnimationItem.prototype.moveFrame=function(t,e){e&&this.name!=e||this.setCurrentRawFrameValue(this.currentRawFrame+t)},AnimationItem.prototype.setCurrentRawFrameValue=function(t){this.currentRawFrame=t,this.currentRawFrame>=this.totalFrames?(this.currentRawFrame=this.currentRawFrame%this.totalFrames,this.loop===!1?this.goToAndStop(this.totalFrames-1):(this.playCount+=1,this.loop!==!0&&this.playCount==this.loop&&this.goToAndStop(this.totalFrames-1))):this.currentRawFrame<0&&(this.playCount-=1,this.playCount<0&&(this.playCount=0),this.currentRawFrame=this.totalFrames+this.currentRawFrame),this.gotoFrame()},AnimationItem.prototype.setSpeed=function(t){this.playSpeed=t,this.updaFrameModifier()},AnimationItem.prototype.setDirection=function(t){this.playDirection=0>t?-1:1,this.updaFrameModifier()},AnimationItem.prototype.updaFrameModifier=function(){this.frameModifier=this.frameMult*this.playSpeed*this.playDirection},AnimationItem.prototype.getPath=function(){return this.path},AnimationItem.prototype.getAssets=function(){return this.assets},function(t){function e(t){animationManager.play(t)}function a(t){animationManager.pause(t)}function i(t){animationManager.togglePause(t)}function r(t,e){animationManager.setSpeed(t,e)}function n(t,e){animationManager.setDirection(t,e)}function s(t){animationManager.stop(t)}function o(t){animationManager.moveFrame(t)}function h(){animationManager.searchAnimations()}function m(t){animationManager.registerAnimation(t)}function p(){animationManager.resize()}function l(){animationManager.start()}function c(t){subframeEnabled=t}function d(){"complete"===document.readyState&&(clearInterval(f),h(),e())}var u={};u.play=e,u.pause=a,u.togglePause=i,u.setSpeed=r,u.setDirection=n,u.stop=s,u.moveFrame=o,u.searchAnimations=h,u.registerAnimation=m,u.setSubframeRendering=c,u.resize=p,u.start=l,u.checkReady=d,t.bodymovin=u;var f=setInterval(d,100)}(window);}(window));