var spine;(function(n){class b{constructor(x,S,E){if(x==null)throw new Error("name cannot be null.");if(S==null)throw new Error("timelines cannot be null.");this.name=x,this.timelines=S,this.timelineIds=[];for(var T=0;T0&&(S%=this.duration));let f=this.timelines;for(let C=0,R=f.length;C>>1;for(;;){if(x[(L+1)*E]<=S?T=L+1:p=L,T==p)return(T+1)*E;L=T+p>>>1}}static linearSearch(x,S,E){for(let T=0,p=x.length-E;T<=p;T+=E)if(x[T]>S)return T;return-1}}n.Animation=b;let F;(function(v){v[v.setup=0]="setup",v[v.first=1]="first",v[v.replace=2]="replace",v[v.add=3]="add"})(F=n.MixBlend||(n.MixBlend={}));let e;(function(v){v[v.mixIn=0]="mixIn",v[v.mixOut=1]="mixOut"})(e=n.MixDirection||(n.MixDirection={}));let r;(function(v){v[v.rotate=0]="rotate",v[v.translate=1]="translate",v[v.scale=2]="scale",v[v.shear=3]="shear",v[v.attachment=4]="attachment",v[v.color=5]="color",v[v.deform=6]="deform",v[v.event=7]="event",v[v.drawOrder=8]="drawOrder",v[v.ikConstraint=9]="ikConstraint",v[v.transformConstraint=10]="transformConstraint",v[v.pathConstraintPosition=11]="pathConstraintPosition",v[v.pathConstraintSpacing=12]="pathConstraintSpacing",v[v.pathConstraintMix=13]="pathConstraintMix",v[v.twoColor=14]="twoColor"})(r=n.TimelineType||(n.TimelineType={}));class o{constructor(x){if(x<=0)throw new Error("frameCount must be > 0: "+x);this.curves=n.Utils.newFloatArray((x-1)*o.BEZIER_SIZE)}getFrameCount(){return this.curves.length/o.BEZIER_SIZE+1}setLinear(x){this.curves[x*o.BEZIER_SIZE]=o.LINEAR}setStepped(x){this.curves[x*o.BEZIER_SIZE]=o.STEPPED}getCurveType(x){let S=x*o.BEZIER_SIZE;if(S==this.curves.length)return o.LINEAR;let E=this.curves[S];return E==o.LINEAR?o.LINEAR:E==o.STEPPED?o.STEPPED:o.BEZIER}setCurve(x,S,E,T,p){let L=(-S*2+T)*.03,Y=(-E*2+p)*.03,A=((S-T)*3+1)*.006,f=((E-p)*3+1)*.006,C=L*2+A,R=Y*2+f,V=S*.3+L+A*.16666667,k=E*.3+Y+f*.16666667,N=x*o.BEZIER_SIZE,U=this.curves;U[N++]=o.BEZIER;let W=V,X=k;for(let q=N+o.BEZIER_SIZE-1;N=S){let C,R;return T==A?(C=0,R=0):(C=E[T-2],R=E[T-1]),R+(E[T+1]-R)*(S-C)/(L-C)}let Y=E[T-1];return Y+(1-Y)*(S-L)/(1-L)}}o.LINEAR=0,o.STEPPED=1,o.BEZIER=2,o.BEZIER_SIZE=10*2-1,n.CurveTimeline=o;class t extends o{constructor(x){super(x),this.frames=n.Utils.newFloatArray(x<<1)}getPropertyId(){return(r.rotate<<24)+this.boneIndex}setFrame(x,S,E){x<<=1,this.frames[x]=S,this.frames[x+t.ROTATION]=E}apply(x,S,E,T,p,L,Y){let A=this.frames,f=x.bones[this.boneIndex];if(!f.active)return;if(E=A[A.length-t.ENTRIES]){let U=A[A.length+t.PREV_ROTATION];switch(L){case F.setup:f.rotation=f.data.rotation+U*p;break;case F.first:case F.replace:U+=f.data.rotation-f.rotation,U-=(16384-(16384.499999999996-U/360|0))*360;case F.add:f.rotation+=U*p}return}let C=b.binarySearch(A,E,t.ENTRIES),R=A[C+t.PREV_ROTATION],V=A[C],k=this.getCurvePercent((C>>1)-1,1-(E-V)/(A[C+t.PREV_TIME]-V)),N=A[C+t.ROTATION]-R;switch(N=R+(N-(16384-(16384.499999999996-N/360|0))*360)*k,L){case F.setup:f.rotation=f.data.rotation+(N-(16384-(16384.499999999996-N/360|0))*360)*p;break;case F.first:case F.replace:N+=f.data.rotation-f.rotation;case F.add:f.rotation+=(N-(16384-(16384.499999999996-N/360|0))*360)*p}}}t.ENTRIES=2,t.PREV_TIME=-2,t.PREV_ROTATION=-1,t.ROTATION=1,n.RotateTimeline=t;class s extends o{constructor(x){super(x),this.frames=n.Utils.newFloatArray(x*s.ENTRIES)}getPropertyId(){return(r.translate<<24)+this.boneIndex}setFrame(x,S,E,T){x*=s.ENTRIES,this.frames[x]=S,this.frames[x+s.X]=E,this.frames[x+s.Y]=T}apply(x,S,E,T,p,L,Y){let A=this.frames,f=x.bones[this.boneIndex];if(!f.active)return;if(E=A[A.length-s.ENTRIES])C=A[A.length+s.PREV_X],R=A[A.length+s.PREV_Y];else{let V=b.binarySearch(A,E,s.ENTRIES);C=A[V+s.PREV_X],R=A[V+s.PREV_Y];let k=A[V],N=this.getCurvePercent(V/s.ENTRIES-1,1-(E-k)/(A[V+s.PREV_TIME]-k));C+=(A[V+s.X]-C)*N,R+=(A[V+s.Y]-R)*N}switch(L){case F.setup:f.x=f.data.x+C*p,f.y=f.data.y+R*p;break;case F.first:case F.replace:f.x+=(f.data.x+C-f.x)*p,f.y+=(f.data.y+R-f.y)*p;break;case F.add:f.x+=C*p,f.y+=R*p}}}s.ENTRIES=3,s.PREV_TIME=-3,s.PREV_X=-2,s.PREV_Y=-1,s.X=1,s.Y=2,n.TranslateTimeline=s;class h extends s{constructor(x){super(x)}getPropertyId(){return(r.scale<<24)+this.boneIndex}apply(x,S,E,T,p,L,Y){let A=this.frames,f=x.bones[this.boneIndex];if(!f.active)return;if(E=A[A.length-h.ENTRIES])C=A[A.length+h.PREV_X]*f.data.scaleX,R=A[A.length+h.PREV_Y]*f.data.scaleY;else{let V=b.binarySearch(A,E,h.ENTRIES);C=A[V+h.PREV_X],R=A[V+h.PREV_Y];let k=A[V],N=this.getCurvePercent(V/h.ENTRIES-1,1-(E-k)/(A[V+h.PREV_TIME]-k));C=(C+(A[V+h.X]-C)*N)*f.data.scaleX,R=(R+(A[V+h.Y]-R)*N)*f.data.scaleY}if(p==1)L==F.add?(f.scaleX+=C-f.data.scaleX,f.scaleY+=R-f.data.scaleY):(f.scaleX=C,f.scaleY=R);else{let V=0,k=0;if(Y==e.mixOut)switch(L){case F.setup:V=f.data.scaleX,k=f.data.scaleY,f.scaleX=V+(Math.abs(C)*n.MathUtils.signum(V)-V)*p,f.scaleY=k+(Math.abs(R)*n.MathUtils.signum(k)-k)*p;break;case F.first:case F.replace:V=f.scaleX,k=f.scaleY,f.scaleX=V+(Math.abs(C)*n.MathUtils.signum(V)-V)*p,f.scaleY=k+(Math.abs(R)*n.MathUtils.signum(k)-k)*p;break;case F.add:V=f.scaleX,k=f.scaleY,f.scaleX=V+(Math.abs(C)*n.MathUtils.signum(V)-f.data.scaleX)*p,f.scaleY=k+(Math.abs(R)*n.MathUtils.signum(k)-f.data.scaleY)*p}else switch(L){case F.setup:V=Math.abs(f.data.scaleX)*n.MathUtils.signum(C),k=Math.abs(f.data.scaleY)*n.MathUtils.signum(R),f.scaleX=V+(C-V)*p,f.scaleY=k+(R-k)*p;break;case F.first:case F.replace:V=Math.abs(f.scaleX)*n.MathUtils.signum(C),k=Math.abs(f.scaleY)*n.MathUtils.signum(R),f.scaleX=V+(C-V)*p,f.scaleY=k+(R-k)*p;break;case F.add:V=n.MathUtils.signum(C),k=n.MathUtils.signum(R),f.scaleX=Math.abs(f.scaleX)*V+(C-Math.abs(f.data.scaleX)*V)*p,f.scaleY=Math.abs(f.scaleY)*k+(R-Math.abs(f.data.scaleY)*k)*p}}}}n.ScaleTimeline=h;class a extends s{constructor(x){super(x)}getPropertyId(){return(r.shear<<24)+this.boneIndex}apply(x,S,E,T,p,L,Y){let A=this.frames,f=x.bones[this.boneIndex];if(!f.active)return;if(E=A[A.length-a.ENTRIES])C=A[A.length+a.PREV_X],R=A[A.length+a.PREV_Y];else{let V=b.binarySearch(A,E,a.ENTRIES);C=A[V+a.PREV_X],R=A[V+a.PREV_Y];let k=A[V],N=this.getCurvePercent(V/a.ENTRIES-1,1-(E-k)/(A[V+a.PREV_TIME]-k));C=C+(A[V+a.X]-C)*N,R=R+(A[V+a.Y]-R)*N}switch(L){case F.setup:f.shearX=f.data.shearX+C*p,f.shearY=f.data.shearY+R*p;break;case F.first:case F.replace:f.shearX+=(f.data.shearX+C-f.shearX)*p,f.shearY+=(f.data.shearY+R-f.shearY)*p;break;case F.add:f.shearX+=C*p,f.shearY+=R*p}}}n.ShearTimeline=a;class l extends o{constructor(x){super(x),this.frames=n.Utils.newFloatArray(x*l.ENTRIES)}getPropertyId(){return(r.color<<24)+this.slotIndex}setFrame(x,S,E,T,p,L){x*=l.ENTRIES,this.frames[x]=S,this.frames[x+l.R]=E,this.frames[x+l.G]=T,this.frames[x+l.B]=p,this.frames[x+l.A]=L}apply(x,S,E,T,p,L,Y){let A=x.slots[this.slotIndex];if(!A.bone.active)return;let f=this.frames;if(E=f[f.length-l.ENTRIES]){let N=f.length;C=f[N+l.PREV_R],R=f[N+l.PREV_G],V=f[N+l.PREV_B],k=f[N+l.PREV_A]}else{let N=b.binarySearch(f,E,l.ENTRIES);C=f[N+l.PREV_R],R=f[N+l.PREV_G],V=f[N+l.PREV_B],k=f[N+l.PREV_A];let U=f[N],W=this.getCurvePercent(N/l.ENTRIES-1,1-(E-U)/(f[N+l.PREV_TIME]-U));C+=(f[N+l.R]-C)*W,R+=(f[N+l.G]-R)*W,V+=(f[N+l.B]-V)*W,k+=(f[N+l.A]-k)*W}if(p==1)A.color.set(C,R,V,k);else{let N=A.color;L==F.setup&&N.setFromColor(A.data.color),N.add((C-N.r)*p,(R-N.g)*p,(V-N.b)*p,(k-N.a)*p)}}}l.ENTRIES=5,l.PREV_TIME=-5,l.PREV_R=-4,l.PREV_G=-3,l.PREV_B=-2,l.PREV_A=-1,l.R=1,l.G=2,l.B=3,l.A=4,n.ColorTimeline=l;class i extends o{constructor(x){super(x),this.frames=n.Utils.newFloatArray(x*i.ENTRIES)}getPropertyId(){return(r.twoColor<<24)+this.slotIndex}setFrame(x,S,E,T,p,L,Y,A,f){x*=i.ENTRIES,this.frames[x]=S,this.frames[x+i.R]=E,this.frames[x+i.G]=T,this.frames[x+i.B]=p,this.frames[x+i.A]=L,this.frames[x+i.R2]=Y,this.frames[x+i.G2]=A,this.frames[x+i.B2]=f}apply(x,S,E,T,p,L,Y){let A=x.slots[this.slotIndex];if(!A.bone.active)return;let f=this.frames;if(E=f[f.length-i.ENTRIES]){let X=f.length;C=f[X+i.PREV_R],R=f[X+i.PREV_G],V=f[X+i.PREV_B],k=f[X+i.PREV_A],N=f[X+i.PREV_R2],U=f[X+i.PREV_G2],W=f[X+i.PREV_B2]}else{let X=b.binarySearch(f,E,i.ENTRIES);C=f[X+i.PREV_R],R=f[X+i.PREV_G],V=f[X+i.PREV_B],k=f[X+i.PREV_A],N=f[X+i.PREV_R2],U=f[X+i.PREV_G2],W=f[X+i.PREV_B2];let q=f[X],j=this.getCurvePercent(X/i.ENTRIES-1,1-(E-q)/(f[X+i.PREV_TIME]-q));C+=(f[X+i.R]-C)*j,R+=(f[X+i.G]-R)*j,V+=(f[X+i.B]-V)*j,k+=(f[X+i.A]-k)*j,N+=(f[X+i.R2]-N)*j,U+=(f[X+i.G2]-U)*j,W+=(f[X+i.B2]-W)*j}if(p==1)A.color.set(C,R,V,k),A.darkColor.set(N,U,W,1);else{let X=A.color,q=A.darkColor;L==F.setup&&(X.setFromColor(A.data.color),q.setFromColor(A.data.darkColor)),X.add((C-X.r)*p,(R-X.g)*p,(V-X.b)*p,(k-X.a)*p),q.add((N-q.r)*p,(U-q.g)*p,(W-q.b)*p,0)}}}i.ENTRIES=8,i.PREV_TIME=-8,i.PREV_R=-7,i.PREV_G=-6,i.PREV_B=-5,i.PREV_A=-4,i.PREV_R2=-3,i.PREV_G2=-2,i.PREV_B2=-1,i.R=1,i.G=2,i.B=3,i.A=4,i.R2=5,i.G2=6,i.B2=7,n.TwoColorTimeline=i;class u{constructor(x){this.frames=n.Utils.newFloatArray(x),this.attachmentNames=new Array(x)}getPropertyId(){return(r.attachment<<24)+this.slotIndex}getFrameCount(){return this.frames.length}setFrame(x,S,E){this.frames[x]=S,this.attachmentNames[x]=E}apply(x,S,E,T,p,L,Y){let A=x.slots[this.slotIndex];if(!A.bone.active)return;if(Y==e.mixOut){L==F.setup&&this.setAttachment(x,A,A.data.attachmentName);return}let f=this.frames;if(E=f[f.length-1]?C=f.length-1:C=b.binarySearch(f,E,1)-1;let R=this.attachmentNames[C];x.slots[this.slotIndex].setAttachment(R==null?null:x.getAttachment(this.slotIndex,R))}setAttachment(x,S,E){S.attachment=E==null?null:x.getAttachment(this.slotIndex,E)}}n.AttachmentTimeline=u;let c=null;class d extends o{constructor(x){super(x),this.frames=n.Utils.newFloatArray(x),this.frameVertices=new Array(x),c==null&&(c=n.Utils.newFloatArray(64))}getPropertyId(){return(r.deform<<27)+ +this.attachment.id+this.slotIndex}setFrame(x,S,E){this.frames[x]=S,this.frameVertices[x]=E}apply(x,S,E,T,p,L,Y){let A=x.slots[this.slotIndex];if(!A.bone.active)return;let f=A.getAttachment();if(!(f instanceof n.VertexAttachment)||f.deformAttachment!=this.attachment)return;let C=A.deform;C.length==0&&(L=F.setup);let R=this.frameVertices,V=R[0].length,k=this.frames;if(E=k[k.length-1]){let B=R[k.length-1];if(p==1)if(L==F.add){let O=f;if(O.bones==null){let D=O.vertices;for(let $=0;$E)this.apply(x,S,Number.MAX_VALUE,T,p,L,Y),S=-1;else if(S>=A[f-1])return;if(E0&&A[C-1]==R;)C--}for(;C=A[C];C++)T.push(this.events[C])}}n.EventTimeline=g;class m{constructor(x){this.frames=n.Utils.newFloatArray(x),this.drawOrders=new Array(x)}getPropertyId(){return r.drawOrder<<24}getFrameCount(){return this.frames.length}setFrame(x,S,E){this.frames[x]=S,this.drawOrders[x]=E}apply(x,S,E,T,p,L,Y){let A=x.drawOrder,f=x.slots;if(Y==e.mixOut){L==F.setup&&n.Utils.arrayCopy(x.slots,0,x.drawOrder,0,x.slots.length);return}let C=this.frames;if(E=C[C.length-1]?R=C.length-1:R=b.binarySearch(C,E)-1;let V=this.drawOrders[R];if(V==null)n.Utils.arrayCopy(f,0,A,0,f.length);else for(let k=0,N=V.length;k=A[A.length-w.ENTRIES]){L==F.setup?(f.mix=f.data.mix+(A[A.length+w.PREV_MIX]-f.data.mix)*p,f.softness=f.data.softness+(A[A.length+w.PREV_SOFTNESS]-f.data.softness)*p,Y==e.mixOut?(f.bendDirection=f.data.bendDirection,f.compress=f.data.compress,f.stretch=f.data.stretch):(f.bendDirection=A[A.length+w.PREV_BEND_DIRECTION],f.compress=A[A.length+w.PREV_COMPRESS]!=0,f.stretch=A[A.length+w.PREV_STRETCH]!=0)):(f.mix+=(A[A.length+w.PREV_MIX]-f.mix)*p,f.softness+=(A[A.length+w.PREV_SOFTNESS]-f.softness)*p,Y==e.mixIn&&(f.bendDirection=A[A.length+w.PREV_BEND_DIRECTION],f.compress=A[A.length+w.PREV_COMPRESS]!=0,f.stretch=A[A.length+w.PREV_STRETCH]!=0));return}let C=b.binarySearch(A,E,w.ENTRIES),R=A[C+w.PREV_MIX],V=A[C+w.PREV_SOFTNESS],k=A[C],N=this.getCurvePercent(C/w.ENTRIES-1,1-(E-k)/(A[C+w.PREV_TIME]-k));L==F.setup?(f.mix=f.data.mix+(R+(A[C+w.MIX]-R)*N-f.data.mix)*p,f.softness=f.data.softness+(V+(A[C+w.SOFTNESS]-V)*N-f.data.softness)*p,Y==e.mixOut?(f.bendDirection=f.data.bendDirection,f.compress=f.data.compress,f.stretch=f.data.stretch):(f.bendDirection=A[C+w.PREV_BEND_DIRECTION],f.compress=A[C+w.PREV_COMPRESS]!=0,f.stretch=A[C+w.PREV_STRETCH]!=0)):(f.mix+=(R+(A[C+w.MIX]-R)*N-f.mix)*p,f.softness+=(V+(A[C+w.SOFTNESS]-V)*N-f.softness)*p,Y==e.mixIn&&(f.bendDirection=A[C+w.PREV_BEND_DIRECTION],f.compress=A[C+w.PREV_COMPRESS]!=0,f.stretch=A[C+w.PREV_STRETCH]!=0))}}w.ENTRIES=6,w.PREV_TIME=-6,w.PREV_MIX=-5,w.PREV_SOFTNESS=-4,w.PREV_BEND_DIRECTION=-3,w.PREV_COMPRESS=-2,w.PREV_STRETCH=-1,w.MIX=1,w.SOFTNESS=2,w.BEND_DIRECTION=3,w.COMPRESS=4,w.STRETCH=5,n.IkConstraintTimeline=w;class M extends o{constructor(x){super(x),this.frames=n.Utils.newFloatArray(x*M.ENTRIES)}getPropertyId(){return(r.transformConstraint<<24)+this.transformConstraintIndex}setFrame(x,S,E,T,p,L){x*=M.ENTRIES,this.frames[x]=S,this.frames[x+M.ROTATE]=E,this.frames[x+M.TRANSLATE]=T,this.frames[x+M.SCALE]=p,this.frames[x+M.SHEAR]=L}apply(x,S,E,T,p,L,Y){let A=this.frames,f=x.transformConstraints[this.transformConstraintIndex];if(!f.active)return;if(E=A[A.length-M.ENTRIES]){let N=A.length;C=A[N+M.PREV_ROTATE],R=A[N+M.PREV_TRANSLATE],V=A[N+M.PREV_SCALE],k=A[N+M.PREV_SHEAR]}else{let N=b.binarySearch(A,E,M.ENTRIES);C=A[N+M.PREV_ROTATE],R=A[N+M.PREV_TRANSLATE],V=A[N+M.PREV_SCALE],k=A[N+M.PREV_SHEAR];let U=A[N],W=this.getCurvePercent(N/M.ENTRIES-1,1-(E-U)/(A[N+M.PREV_TIME]-U));C+=(A[N+M.ROTATE]-C)*W,R+=(A[N+M.TRANSLATE]-R)*W,V+=(A[N+M.SCALE]-V)*W,k+=(A[N+M.SHEAR]-k)*W}if(L==F.setup){let N=f.data;f.rotateMix=N.rotateMix+(C-N.rotateMix)*p,f.translateMix=N.translateMix+(R-N.translateMix)*p,f.scaleMix=N.scaleMix+(V-N.scaleMix)*p,f.shearMix=N.shearMix+(k-N.shearMix)*p}else f.rotateMix+=(C-f.rotateMix)*p,f.translateMix+=(R-f.translateMix)*p,f.scaleMix+=(V-f.scaleMix)*p,f.shearMix+=(k-f.shearMix)*p}}M.ENTRIES=5,M.PREV_TIME=-5,M.PREV_ROTATE=-4,M.PREV_TRANSLATE=-3,M.PREV_SCALE=-2,M.PREV_SHEAR=-1,M.ROTATE=1,M.TRANSLATE=2,M.SCALE=3,M.SHEAR=4,n.TransformConstraintTimeline=M;class I extends o{constructor(x){super(x),this.frames=n.Utils.newFloatArray(x*I.ENTRIES)}getPropertyId(){return(r.pathConstraintPosition<<24)+this.pathConstraintIndex}setFrame(x,S,E){x*=I.ENTRIES,this.frames[x]=S,this.frames[x+I.VALUE]=E}apply(x,S,E,T,p,L,Y){let A=this.frames,f=x.pathConstraints[this.pathConstraintIndex];if(!f.active)return;if(E=A[A.length-I.ENTRIES])C=A[A.length+I.PREV_VALUE];else{let R=b.binarySearch(A,E,I.ENTRIES);C=A[R+I.PREV_VALUE];let V=A[R],k=this.getCurvePercent(R/I.ENTRIES-1,1-(E-V)/(A[R+I.PREV_TIME]-V));C+=(A[R+I.VALUE]-C)*k}L==F.setup?f.position=f.data.position+(C-f.data.position)*p:f.position+=(C-f.position)*p}}I.ENTRIES=2,I.PREV_TIME=-2,I.PREV_VALUE=-1,I.VALUE=1,n.PathConstraintPositionTimeline=I;class y extends I{constructor(x){super(x)}getPropertyId(){return(r.pathConstraintSpacing<<24)+this.pathConstraintIndex}apply(x,S,E,T,p,L,Y){let A=this.frames,f=x.pathConstraints[this.pathConstraintIndex];if(!f.active)return;if(E=A[A.length-y.ENTRIES])C=A[A.length+y.PREV_VALUE];else{let R=b.binarySearch(A,E,y.ENTRIES);C=A[R+y.PREV_VALUE];let V=A[R],k=this.getCurvePercent(R/y.ENTRIES-1,1-(E-V)/(A[R+y.PREV_TIME]-V));C+=(A[R+y.VALUE]-C)*k}L==F.setup?f.spacing=f.data.spacing+(C-f.data.spacing)*p:f.spacing+=(C-f.spacing)*p}}n.PathConstraintSpacingTimeline=y;class P extends o{constructor(x){super(x),this.frames=n.Utils.newFloatArray(x*P.ENTRIES)}getPropertyId(){return(r.pathConstraintMix<<24)+this.pathConstraintIndex}setFrame(x,S,E,T){x*=P.ENTRIES,this.frames[x]=S,this.frames[x+P.ROTATE]=E,this.frames[x+P.TRANSLATE]=T}apply(x,S,E,T,p,L,Y){let A=this.frames,f=x.pathConstraints[this.pathConstraintIndex];if(!f.active)return;if(E=A[A.length-P.ENTRIES])C=A[A.length+P.PREV_ROTATE],R=A[A.length+P.PREV_TRANSLATE];else{let V=b.binarySearch(A,E,P.ENTRIES);C=A[V+P.PREV_ROTATE],R=A[V+P.PREV_TRANSLATE];let k=A[V],N=this.getCurvePercent(V/P.ENTRIES-1,1-(E-k)/(A[V+P.PREV_TIME]-k));C+=(A[V+P.ROTATE]-C)*N,R+=(A[V+P.TRANSLATE]-R)*N}L==F.setup?(f.rotateMix=f.data.rotateMix+(C-f.data.rotateMix)*p,f.translateMix=f.data.translateMix+(R-f.data.translateMix)*p):(f.rotateMix+=(C-f.rotateMix)*p,f.translateMix+=(R-f.translateMix)*p)}}P.ENTRIES=3,P.PREV_TIME=-3,P.PREV_ROTATE=-2,P.PREV_TRANSLATE=-1,P.ROTATE=1,P.TRANSLATE=2,n.PathConstraintMixTimeline=P})(spine||(spine={}));var spine;(function(n){class b{constructor(s){this.tracks=new Array,this.timeScale=1,this.unkeyedState=0,this.events=new Array,this.listeners=new Array,this.queue=new e(this),this.propertyIDs=new n.IntSet,this.animationsChanged=!1,this.trackEntryPool=new n.Pool(()=>new F),this.data=s}update(s){s*=this.timeScale;let h=this.tracks;for(let a=0,l=h.length;a0){if(i.delay-=u,i.delay>0)continue;u=-i.delay,i.delay=0}let c=i.next;if(c!=null){let d=i.trackLast-c.delay;if(d>=0){for(c.delay=0,c.trackTime+=i.timeScale==0?0:(d/i.timeScale+s)*c.timeScale,i.trackTime+=u,this.setCurrent(a,c,!0);c.mixingFrom!=null;)c.mixTime+=s,c=c.mixingFrom;continue}}else if(i.trackLast>=i.trackEnd&&i.mixingFrom==null){h[a]=null,this.queue.end(i),this.disposeNext(i);continue}if(i.mixingFrom!=null&&this.updateMixingFrom(i,s)){let d=i.mixingFrom;for(i.mixingFrom=null,d!=null&&(d.mixingTo=null);d!=null;)this.queue.end(d),d=d.mixingFrom}i.trackTime+=u}this.queue.drain()}updateMixingFrom(s,h){let a=s.mixingFrom;if(a==null)return!0;let l=this.updateMixingFrom(a,h);return a.animationLast=a.nextAnimationLast,a.trackLast=a.nextTrackLast,s.mixTime>0&&s.mixTime>=s.mixDuration?((a.totalAlpha==0||s.mixDuration==0)&&(s.mixingFrom=a.mixingFrom,a.mixingFrom!=null&&(a.mixingFrom.mixingTo=s),s.interruptAlpha=a.interruptAlpha,this.queue.end(a)),l):(a.trackTime+=h*a.timeScale,s.mixTime+=h,!1)}apply(s){if(s==null)throw new Error("skeleton cannot be null.");this.animationsChanged&&this._animationsChanged();let h=this.events,a=this.tracks,l=!1;for(let M=0,I=a.length;M0)continue;l=!0;let P=M==0?n.MixBlend.first:y.mixBlend,v=y.alpha;y.mixingFrom!=null?v*=this.applyMixingFrom(y,s,P):y.trackTime>=y.trackEnd&&y.next==null&&(v=0);let x=y.animationLast,S=y.getAnimationTime(),E=y.animation.timelines.length,T=y.animation.timelines;if(M==0&&v==1||P==n.MixBlend.add)for(let p=0;p1&&(i=1),a!=n.MixBlend.first&&(a=l.mixBlend));let u=i0&&this.queueEvents(l,m),this.events.length=0,l.nextAnimationLast=m,l.nextTrackLast=l.trackTime,i}applyAttachmentTimeline(s,h,a,l,i){var u=h.slots[s.slotIndex];if(u.bone.active){var c=s.frames;if(a=c[c.length-1]?d=c.length-1:d=n.Animation.binarySearch(c,a)-1,this.setAttachment(h,u,s.attachmentNames[d],i)}u.attachmentState<=this.unkeyedState&&(u.attachmentState=this.unkeyedState+b.SETUP)}}setAttachment(s,h,a,l){h.setAttachment(a==null?null:s.getAttachment(h.data.index,a)),l&&(h.attachmentState=this.unkeyedState+b.CURRENT)}applyRotateTimeline(s,h,a,l,i,u,c,d){if(d&&(u[c]=0),l==1){s.apply(h,0,a,null,1,i,n.MixDirection.mixIn);return}let g=s,m=g.frames,w=h.bones[g.boneIndex];if(!w.active)return;let M=0,I=0;if(a=m[m.length-n.RotateTimeline.ENTRIES])I=w.data.rotation+m[m.length+n.RotateTimeline.PREV_ROTATION];else{let v=n.Animation.binarySearch(m,a,n.RotateTimeline.ENTRIES),x=m[v+n.RotateTimeline.PREV_ROTATION],S=m[v],E=g.getCurvePercent((v>>1)-1,1-(a-S)/(m[v+n.RotateTimeline.PREV_TIME]-S));I=m[v+n.RotateTimeline.ROTATION]-x,I-=(16384-(16384.499999999996-I/360|0))*360,I=x+I*E+w.data.rotation,I-=(16384-(16384.499999999996-I/360|0))*360}let y=0,P=I-M;if(P-=(16384-(16384.499999999996-P/360|0))*360,P==0)y=u[c];else{let v=0,x=0;d?(v=0,x=P):(v=u[c],x=u[c+1]);let S=P>0,E=v>=0;n.MathUtils.signum(x)!=n.MathUtils.signum(P)&&Math.abs(x)<=90&&(Math.abs(v)>180&&(v+=360*n.MathUtils.signum(v)),E=S),y=P+v-v%360,E!=S&&(y+=360*n.MathUtils.signum(v)),u[c]=y}u[c+1]=P,M+=y*l,w.rotation=M-(16384-(16384.499999999996-M/360|0))*360}queueEvents(s,h){let a=s.animationStart,l=s.animationEnd,i=l-a,u=s.trackLast%i,c=this.events,d=0,g=c.length;for(;dl||this.queue.event(s,w)}let m=!1;for(s.loop?m=i==0||u>s.trackTime%i:m=h>=l&&s.animationLast=this.tracks.length)return;let h=this.tracks[s];if(h==null)return;this.queue.end(h),this.disposeNext(h);let a=h;for(;;){let l=a.mixingFrom;if(l==null)break;this.queue.end(l),a.mixingFrom=null,a.mixingTo=null,a=l}this.tracks[h.trackIndex]=null,this.queue.drain()}setCurrent(s,h,a){let l=this.expandToIndex(s);this.tracks[s]=h,l!=null&&(a&&this.queue.interrupt(l),h.mixingFrom=l,l.mixingTo=h,h.mixTime=0,l.mixingFrom!=null&&l.mixDuration>0&&(h.interruptAlpha*=Math.min(1,l.mixTime/l.mixDuration)),l.timelinesRotation.length=0),this.queue.start(h)}setAnimation(s,h,a){let l=this.data.skeletonData.findAnimation(h);return l==null?(console.error("Animation not found: "+h,this.data.skeletonData),this.setEmptyAnimation(s,0)):this.setAnimationWith(s,l,a)}setAnimationWith(s,h,a){if(h==null)throw new Error("animation cannot be null.");let l=!0,i=this.expandToIndex(s);i!=null&&(i.nextTrackLast==-1?(this.tracks[s]=i.mixingFrom,this.queue.interrupt(i),this.queue.end(i),this.disposeNext(i),i=i.mixingFrom,l=!1):this.disposeNext(i));let u=this.trackEntry(s,h,a,i);return this.setCurrent(s,u,l),this.queue.drain(),u}addAnimation(s,h,a,l){let i=this.data.skeletonData.findAnimation(h);if(i==null)throw new Error("Animation not found: "+h);return this.addAnimationWith(s,i,a,l)}addAnimationWith(s,h,a,l){if(h==null)throw new Error("animation cannot be null.");let i=this.expandToIndex(s);if(i!=null)for(;i.next!=null;)i=i.next;let u=this.trackEntry(s,h,a,i);if(i==null)this.setCurrent(s,u,!0),this.queue.drain();else if(i.next=u,l<=0){let c=i.animationEnd-i.animationStart;c!=0?(i.loop?l+=c*(1+(i.trackTime/c|0)):l+=Math.max(c,i.trackTime),l-=this.data.getMix(i.animation,h)):l=i.trackTime}return u.delay=l,u}setEmptyAnimation(s,h){let a=this.setAnimationWith(s,b.emptyAnimation,!1);return a.mixDuration=h,a.trackEnd=h,a}addEmptyAnimation(s,h,a){a<=0&&(a-=h);let l=this.addAnimationWith(s,b.emptyAnimation,!1,a);return l.mixDuration=h,l.trackEnd=h,l}setEmptyAnimations(s){let h=this.queue.drainDisabled;this.queue.drainDisabled=!0;for(let a=0,l=this.tracks.length;a0){i[d]=b.HOLD_MIX,u[d]=w;continue t}break}i[d]=b.HOLD_FIRST}}}getCurrent(s){return s>=this.tracks.length?null:this.tracks[s]}addListener(s){if(s==null)throw new Error("listener cannot be null.");this.listeners.push(s)}removeListener(s){let h=this.listeners.indexOf(s);h>=0&&this.listeners.splice(h,1)}clearListeners(){this.listeners.length=0}clearListenerNotifications(){this.queue.clear()}}b.emptyAnimation=new n.Animation("",[],0),b.SUBSEQUENT=0,b.FIRST=1,b.HOLD_SUBSEQUENT=2,b.HOLD_FIRST=3,b.HOLD_MIX=4,b.SETUP=1,b.CURRENT=2,n.AnimationState=b;class F{constructor(){this.mixBlend=n.MixBlend.replace,this.timelineMode=new Array,this.timelineHoldMix=new Array,this.timelinesRotation=new Array}reset(){this.next=null,this.mixingFrom=null,this.mixingTo=null,this.animation=null,this.listener=null,this.timelineMode.length=0,this.timelineHoldMix.length=0,this.timelinesRotation.length=0}getAnimationTime(){if(this.loop){let s=this.animationEnd-this.animationStart;return s==0?this.animationStart:this.trackTime%s+this.animationStart}return Math.min(this.trackTime+this.animationStart,this.animationEnd)}setAnimationLast(s){this.animationLast=s,this.nextAnimationLast=s}isComplete(){return this.trackTime>=this.animationEnd-this.animationStart}resetRotationDirections(){this.timelinesRotation.length=0}}n.TrackEntry=F;class e{constructor(s){this.objects=[],this.drainDisabled=!1,this.animState=s}start(s){this.objects.push(r.start),this.objects.push(s),this.animState.animationsChanged=!0}interrupt(s){this.objects.push(r.interrupt),this.objects.push(s)}end(s){this.objects.push(r.end),this.objects.push(s),this.animState.animationsChanged=!0}dispose(s){this.objects.push(r.dispose),this.objects.push(s)}complete(s){this.objects.push(r.complete),this.objects.push(s)}event(s,h){this.objects.push(r.event),this.objects.push(s),this.objects.push(h)}drain(){if(this.drainDisabled)return;this.drainDisabled=!0;let s=this.objects,h=this.animState.listeners;for(let a=0;a{h?r(t.loader.getRes(e)):o("download text error: ",e)}))}downloadBinary(e,r,o){let t=window.Laya.Laya?window.Laya.Laya:Laya,s=t.loader.getRes(e);if(s){r(new Uint8Array(s));return}t.loader.load([{type:t.Loader.BUFFER,url:e}],t.Handler.create(this,h=>{h?r(new Uint8Array(t.loader.getRes(e))):o("download binary error: ",e)}))}setRawDataURI(e,r){this.rawDataUris[this.pathPrefix+e]=r}loadBinary(e,r=null,o=null){e=this.pathPrefix+e,this.toLoad++,this.downloadBinary(e,t=>{this.assets[e]=t,r&&r(e,t),this.toLoad--,this.loaded++},(t,s)=>{this.errors[e]=`Couldn't load binary ${e}: status ${t}, ${s}`,o&&o(e,`Couldn't load binary ${e}: status ${t}, ${s}`),this.toLoad--,this.loaded++})}loadText(e,r=null,o=null){e=this.pathPrefix+e,this.toLoad++,this.downloadText(e,t=>{this.assets[e]=t,r&&r(e,t),this.toLoad--,this.loaded++},(t,s)=>{this.errors[e]=`Couldn't load text ${e}: status ${status}, ${s}`,o&&o(e,`Couldn't load text ${e}: status ${status}, ${s}`),this.toLoad--,this.loaded++})}loadTexture(e,r=null,o=null){e=this.pathPrefix+e;let t=e;this.toLoad++;let s=window.Laya.Laya?window.Laya.Laya:Laya,h=s.loader.getRes(e);if(h){let a=this.textureLoader(h);this.assets[e]=a,this.toLoad--,this.loaded++,r&&r(e,a);return}s.loader.load([{type:s.Loader.IMAGE,url:e}],s.Handler.create(this,a=>{if(a){let l=this.textureLoader(s.loader.getRes(e));this.assets[e]=l,this.toLoad--,this.loaded++,r&&r(e,l)}else this.errors[e]=`Couldn't load image ${e}`,this.toLoad--,this.loaded++,o&&o(e,`Couldn't load image ${e}`)}))}loadTextureAtlas(e,r=null,o=null){let t=e.lastIndexOf("/")>=0?e.substring(0,e.lastIndexOf("/")):"";e=this.pathPrefix+e,this.toLoad++,this.downloadText(e,s=>{let h={count:0},a=new Array;try{let l=new n.TextureAtlas(s,i=>{a.push(t==""?i:t+"/"+i);let u=document.createElement("img");return new n.FakeTexture(u)})}catch(l){let i=l;this.errors[e]=`Couldn't load texture atlas ${e}: ${i.message}`,o&&o(e,`Couldn't load texture atlas ${e}: ${i.message}`),this.toLoad--,this.loaded++;return}for(let l of a){let i=!1;this.loadTexture(l,(u,c)=>{if(h.count++,h.count==a.length)if(i)this.errors[e]=`Couldn't load texture atlas page ${u}} of atlas ${e}`,o&&o(e,`Couldn't load texture atlas page ${u} of atlas ${e}`),this.toLoad--,this.loaded++;else try{let d=new n.TextureAtlas(s,g=>this.get(t==""?g:t+"/"+g));this.assets[e]=d,r&&r(e,d),this.toLoad--,this.loaded++}catch(d){let g=d;this.errors[e]=`Couldn't load texture atlas ${e}: ${g.message}`,o&&o(e,`Couldn't load texture atlas ${e}: ${g.message}`),this.toLoad--,this.loaded++}},(u,c)=>{i=!0,h.count++,h.count==a.length&&(this.errors[e]=`Couldn't load texture atlas page ${u}} of atlas ${e}`,o&&o(e,`Couldn't load texture atlas page ${u} of atlas ${e}`),this.toLoad--,this.loaded++)})}},(s,h)=>{this.errors[e]=`Couldn't load texture atlas ${e}: status ${status}, ${h}`,o&&o(e,`Couldn't load texture atlas ${e}: status ${status}, ${h}`),this.toLoad--,this.loaded++})}get(e){return e=this.pathPrefix+e,this.assets[e]}remove(e){e=this.pathPrefix+e;let r=this.assets[e];r.dispose&&r.dispose(),this.assets[e]=null}removeAll(){for(let e in this.assets){let r=this.assets[e];r.dispose&&r.dispose()}this.assets={}}isLoadingComplete(){return this.toLoad==0}getToLoad(){return this.toLoad}getLoaded(){return this.loaded}dispose(){this.removeAll()}hasErrors(){return Object.keys(this.errors).length>0}getErrors(){return this.errors}}n.AssetManager=b})(spine||(spine={}));var spine;(function(n){class b{constructor(e){this.atlas=e}newRegionAttachment(e,r,o){let t=this.atlas.findRegion(o);if(t==null)throw new Error("Region not found in atlas: "+o+" (region attachment: "+r+")");t.renderObject=t;let s=new n.RegionAttachment(r);return s.setRegion(t),s}newMeshAttachment(e,r,o){let t=this.atlas.findRegion(o);if(t==null)throw new Error("Region not found in atlas: "+o+" (mesh attachment: "+r+")");t.renderObject=t;let s=new n.MeshAttachment(r);return s.region=t,s}newBoundingBoxAttachment(e,r){return new n.BoundingBoxAttachment(r)}newPathAttachment(e,r){return new n.PathAttachment(r)}newPointAttachment(e,r){return new n.PointAttachment(r)}newClippingAttachment(e,r){return new n.ClippingAttachment(r)}}n.AtlasAttachmentLoader=b})(spine||(spine={}));var spine;(function(n){let b;(function(F){F[F.Normal=0]="Normal",F[F.Additive=1]="Additive",F[F.Multiply=2]="Multiply",F[F.Screen=3]="Screen"})(b=n.BlendMode||(n.BlendMode={}))})(spine||(spine={}));var spine;(function(n){class b{constructor(e,r,o){if(this.children=new Array,this.x=0,this.y=0,this.rotation=0,this.scaleX=0,this.scaleY=0,this.shearX=0,this.shearY=0,this.ax=0,this.ay=0,this.arotation=0,this.ascaleX=0,this.ascaleY=0,this.ashearX=0,this.ashearY=0,this.appliedValid=!1,this.a=0,this.b=0,this.c=0,this.d=0,this.worldY=0,this.worldX=0,this.sorted=!1,this.active=!1,e==null)throw new Error("data cannot be null.");if(r==null)throw new Error("skeleton cannot be null.");this.data=e,this.skeleton=r,this.parent=o,this.setToSetupPose()}isActive(){return this.active}update(){this.updateWorldTransformWith(this.x,this.y,this.rotation,this.scaleX,this.scaleY,this.shearX,this.shearY)}updateWorldTransform(){this.updateWorldTransformWith(this.x,this.y,this.rotation,this.scaleX,this.scaleY,this.shearX,this.shearY)}updateWorldTransformWith(e,r,o,t,s,h,a){this.ax=e,this.ay=r,this.arotation=o,this.ascaleX=t,this.ascaleY=s,this.ashearX=h,this.ashearY=a,this.appliedValid=!0;let l=this.parent;if(l==null){let g=this.skeleton,m=o+90+a,w=g.scaleX,M=g.scaleY;this.a=n.MathUtils.cosDeg(o+h)*t*w,this.b=n.MathUtils.cosDeg(m)*s*w,this.c=n.MathUtils.sinDeg(o+h)*t*M,this.d=n.MathUtils.sinDeg(m)*s*M,this.worldX=e*w+g.x,this.worldY=r*M+g.y;return}let i=l.a,u=l.b,c=l.c,d=l.d;switch(this.worldX=i*e+u*r+l.worldX,this.worldY=c*e+d*r+l.worldY,this.data.transformMode){case n.TransformMode.Normal:{let g=o+90+a,m=n.MathUtils.cosDeg(o+h)*t,w=n.MathUtils.cosDeg(g)*s,M=n.MathUtils.sinDeg(o+h)*t,I=n.MathUtils.sinDeg(g)*s;this.a=i*m+u*M,this.b=i*w+u*I,this.c=c*m+d*M,this.d=c*w+d*I;return}case n.TransformMode.OnlyTranslation:{let g=o+90+a;this.a=n.MathUtils.cosDeg(o+h)*t,this.b=n.MathUtils.cosDeg(g)*s,this.c=n.MathUtils.sinDeg(o+h)*t,this.d=n.MathUtils.sinDeg(g)*s;break}case n.TransformMode.NoRotationOrReflection:{let g=i*i+c*c,m=0;g>1e-4?(g=Math.abs(i*d-u*c)/g,i/=this.skeleton.scaleX,c/=this.skeleton.scaleY,u=c*g,d=i*g,m=Math.atan2(c,i)*n.MathUtils.radDeg):(i=0,c=0,m=90-Math.atan2(d,u)*n.MathUtils.radDeg);let w=o+h-m,M=o+a-m+90,I=n.MathUtils.cosDeg(w)*t,y=n.MathUtils.cosDeg(M)*s,P=n.MathUtils.sinDeg(w)*t,v=n.MathUtils.sinDeg(M)*s;this.a=i*I-u*P,this.b=i*y-u*v,this.c=c*I+d*P,this.d=c*y+d*v;break}case n.TransformMode.NoScale:case n.TransformMode.NoScaleOrReflection:{let g=n.MathUtils.cosDeg(o),m=n.MathUtils.sinDeg(o),w=(i*g+u*m)/this.skeleton.scaleX,M=(c*g+d*m)/this.skeleton.scaleY,I=Math.sqrt(w*w+M*M);I>1e-5&&(I=1/I),w*=I,M*=I,I=Math.sqrt(w*w+M*M),this.data.transformMode==n.TransformMode.NoScale&&i*d-u*c<0!=(this.skeleton.scaleX<0!=this.skeleton.scaleY<0)&&(I=-I);let y=Math.PI/2+Math.atan2(M,w),P=Math.cos(y)*I,v=Math.sin(y)*I,x=n.MathUtils.cosDeg(h)*t,S=n.MathUtils.cosDeg(90+a)*s,E=n.MathUtils.sinDeg(h)*t,T=n.MathUtils.sinDeg(90+a)*s;this.a=w*x+P*E,this.b=w*S+P*T,this.c=M*x+v*E,this.d=M*S+v*T;break}}this.a*=this.skeleton.scaleX,this.b*=this.skeleton.scaleX,this.c*=this.skeleton.scaleY,this.d*=this.skeleton.scaleY}setToSetupPose(){let e=this.data;this.x=e.x,this.y=e.y,this.rotation=e.rotation,this.scaleX=e.scaleX,this.scaleY=e.scaleY,this.shearX=e.shearX,this.shearY=e.shearY}getWorldRotationX(){return Math.atan2(this.c,this.a)*n.MathUtils.radDeg}getWorldRotationY(){return Math.atan2(this.d,this.b)*n.MathUtils.radDeg}getWorldScaleX(){return Math.sqrt(this.a*this.a+this.c*this.c)}getWorldScaleY(){return Math.sqrt(this.b*this.b+this.d*this.d)}updateAppliedTransform(){this.appliedValid=!0;let e=this.parent;if(e==null){this.ax=this.worldX,this.ay=this.worldY,this.arotation=Math.atan2(this.c,this.a)*n.MathUtils.radDeg,this.ascaleX=Math.sqrt(this.a*this.a+this.c*this.c),this.ascaleY=Math.sqrt(this.b*this.b+this.d*this.d),this.ashearX=0,this.ashearY=Math.atan2(this.a*this.b+this.c*this.d,this.a*this.d-this.b*this.c)*n.MathUtils.radDeg;return}let r=e.a,o=e.b,t=e.c,s=e.d,h=1/(r*s-o*t),a=this.worldX-e.worldX,l=this.worldY-e.worldY;this.ax=a*s*h-l*o*h,this.ay=l*r*h-a*t*h;let i=h*s,u=h*r,c=h*o,d=h*t,g=i*this.a-c*this.c,m=i*this.b-c*this.d,w=u*this.c-d*this.a,M=u*this.d-d*this.b;if(this.ashearX=0,this.ascaleX=Math.sqrt(g*g+w*w),this.ascaleX>1e-4){let I=g*M-m*w;this.ascaleY=I/this.ascaleX,this.ashearY=Math.atan2(g*m+w*M,I)*n.MathUtils.radDeg,this.arotation=Math.atan2(w,g)*n.MathUtils.radDeg}else this.ascaleX=0,this.ascaleY=Math.sqrt(m*m+M*M),this.ashearY=0,this.arotation=90-Math.atan2(M,m)*n.MathUtils.radDeg}worldToLocal(e){let r=this.a,o=this.b,t=this.c,s=this.d,h=1/(r*s-o*t),a=e.x-this.worldX,l=e.y-this.worldY;return e.x=a*s*h-l*o*h,e.y=l*r*h-a*t*h,e}localToWorld(e){let r=e.x,o=e.y;return e.x=r*this.a+o*this.b+this.worldX,e.y=r*this.c+o*this.d+this.worldY,e}worldToLocalRotation(e){let r=n.MathUtils.sinDeg(e),o=n.MathUtils.cosDeg(e);return Math.atan2(this.a*r-this.c*o,this.d*o-this.b*r)*n.MathUtils.radDeg+this.rotation-this.shearX}localToWorldRotation(e){e-=this.rotation-this.shearX;let r=n.MathUtils.sinDeg(e),o=n.MathUtils.cosDeg(e);return Math.atan2(o*this.c+r*this.d,o*this.a+r*this.b)*n.MathUtils.radDeg}rotateWorld(e){let r=this.a,o=this.b,t=this.c,s=this.d,h=n.MathUtils.cosDeg(e),a=n.MathUtils.sinDeg(e);this.a=h*r-a*t,this.b=h*o-a*s,this.c=a*r+h*t,this.d=a*o+h*s,this.appliedValid=!1}}n.Bone=b})(spine||(spine={}));var spine;(function(n){class b{constructor(r,o,t){if(this.x=0,this.y=0,this.rotation=0,this.scaleX=1,this.scaleY=1,this.shearX=0,this.shearY=0,this.transformMode=F.Normal,this.skinRequired=!1,this.color=new n.Color,r<0)throw new Error("index must be >= 0.");if(o==null)throw new Error("name cannot be null.");this.index=r,this.name=o,this.parent=t}}n.BoneData=b;let F;(function(e){e[e.Normal=0]="Normal",e[e.OnlyTranslation=1]="OnlyTranslation",e[e.NoRotationOrReflection=2]="NoRotationOrReflection",e[e.NoScale=3]="NoScale",e[e.NoScaleOrReflection=4]="NoScaleOrReflection"})(F=n.TransformMode||(n.TransformMode={}))})(spine||(spine={}));var spine;(function(n){class b{constructor(e,r,o){this.name=e,this.order=r,this.skinRequired=o}}n.ConstraintData=b})(spine||(spine={}));var spine;(function(n){class b{constructor(e,r){if(r==null)throw new Error("data cannot be null.");this.time=e,this.data=r}}n.Event=b})(spine||(spine={}));var spine;(function(n){class b{constructor(e){this.name=e}}n.EventData=b})(spine||(spine={}));var spine;(function(n){class b{constructor(e,r){if(this.bendDirection=0,this.compress=!1,this.stretch=!1,this.mix=1,this.softness=0,this.active=!1,e==null)throw new Error("data cannot be null.");if(r==null)throw new Error("skeleton cannot be null.");this.data=e,this.mix=e.mix,this.softness=e.softness,this.bendDirection=e.bendDirection,this.compress=e.compress,this.stretch=e.stretch,this.bones=new Array;for(let o=0;o180?g-=360:g<-180&&(g+=360);let M=e.ascaleX,I=e.ascaleY;if(t||s){switch(e.data.transformMode){case n.TransformMode.NoScale:case n.TransformMode.NoScaleOrReflection:m=r-e.worldX,w=o-e.worldY}let y=e.data.length*M,P=Math.sqrt(m*m+w*w);if(t&&Py&&y>1e-4){let v=(P/y-1)*a+1;M*=v,h&&(I*=v)}}e.updateWorldTransformWith(e.ax,e.ay,e.arotation+g*a,M,I,e.ashearX,e.ashearY)}apply2(e,r,o,t,s,h,a,l){if(l==0){r.updateWorldTransform();return}e.appliedValid||e.updateAppliedTransform(),r.appliedValid||r.updateAppliedTransform();let i=e.ax,u=e.ay,c=e.ascaleX,d=c,g=e.ascaleY,m=r.ascaleX,w=0,M=0,I=0;c<0?(c=-c,w=180,I=-1):(w=0,I=1),g<0&&(g=-g,I=-I),m<0?(m=-m,M=180):M=0;let y=r.ax,P=0,v=0,x=0,S=e.a,E=e.b,T=e.c,p=e.d,L=Math.abs(c-g)<=1e-4;L?(P=r.ay,v=S*y+E*P+e.worldX,x=T*y+p*P+e.worldY):(P=0,v=S*y+e.worldX,x=T*y+e.worldY);let Y=e.parent;S=Y.a,E=Y.b,T=Y.c,p=Y.d;let A=1/(S*p-E*T),f=v-Y.worldX,C=x-Y.worldY,R=(f*p-C*E)*A-i,V=(C*S-f*T)*A-u,k=Math.sqrt(R*R+V*V),N=r.data.length*m,U,W;if(k<1e-4){this.apply1(e,o,t,!1,h,!1,l),r.updateWorldTransformWith(y,P,0,r.ascaleX,r.ascaleY,r.ashearX,r.ashearY);return}f=o-Y.worldX,C=t-Y.worldY;let X=(f*p-C*E)*A-i,q=(C*S-f*T)*A-u,j=X*X+q*q;if(a!=0){a*=c*(m+1)/2;let O=Math.sqrt(j),D=O-k-N*c+a;if(D>0){let $=Math.min(1,D/(a*2))-1;$=(D-a*(1-$*$))/O,X-=$*X,q-=$*q,j=X*X+q*q}}t:if(L){N*=c;let O=(j-k*k-N*N)/(2*k*N);O<-1?O=-1:O>1&&(O=1,h&&(d*=(Math.sqrt(j)/(k+N)-1)*l+1)),W=Math.acos(O)*s,S=k+N*O,E=N*Math.sin(W),U=Math.atan2(q*S-X*E,X*S+q*E)}else{S=c*N,E=g*N;let O=S*S,D=E*E,$=Math.atan2(q,X);T=D*k*k+O*j-O*D;let G=-2*D*k,Z=D-O;if(p=G*G-4*Z*T,p>=0){let J=Math.sqrt(p);G<0&&(J=-J),J=-(G+J)/2;let it=J/Z,lt=T/J,_=Math.abs(it)=-1&&T<=1&&(T=Math.acos(T),f=S*Math.cos(T)+k,C=E*Math.sin(T),p=f*f+C*C,pet&&(st=T,et=p,tt=f,at=C)),j<=(K+et)/2?(U=$-Math.atan2(rt*s,z),W=Q*s):(U=$-Math.atan2(at*s,tt),W=st*s)}let H=Math.atan2(P,y)*I,B=e.arotation;U=(U-H)*n.MathUtils.radDeg+w-B,U>180?U-=360:U<-180&&(U+=360),e.updateWorldTransformWith(i,u,B+U*l,d,e.ascaleY,0,0),B=r.arotation,W=((W+H)*n.MathUtils.radDeg-r.ashearX)*I+M-B,W>180?W-=360:W<-180&&(W+=360),r.updateWorldTransformWith(y,P,B+W*l,r.ascaleX,r.ascaleY,r.ashearX,r.ashearY)}}n.IkConstraint=b})(spine||(spine={}));var spine;(function(n){class b extends n.ConstraintData{constructor(e){super(e,0,!1),this.bones=new Array,this.bendDirection=1,this.compress=!1,this.stretch=!1,this.uniform=!1,this.mix=1,this.softness=0}}n.IkConstraintData=b})(spine||(spine={}));var spine;(function(n){class b{constructor(e,r){if(this.position=0,this.spacing=0,this.rotateMix=0,this.translateMix=0,this.spaces=new Array,this.positions=new Array,this.world=new Array,this.curves=new Array,this.lengths=new Array,this.segments=new Array,this.active=!1,e==null)throw new Error("data cannot be null.");if(r==null)throw new Error("skeleton cannot be null.");this.data=e,this.bones=new Array;for(let o=0,t=e.bones.length;o0,s=r>0;if(!t&&!s)return;let h=this.data,a=h.spacingMode==n.SpacingMode.Percent,l=h.rotateMode,i=l==n.RotateMode.Tangent,u=l==n.RotateMode.ChainScale,c=this.bones.length,d=i?c:c+1,g=this.bones,m=n.Utils.setArraySize(this.spaces,d),w=null,M=this.spacing;if(u||!a){u&&(w=n.Utils.setArraySize(this.lengths,c));let S=h.spacingMode==n.SpacingMode.Length;for(let E=0,T=d-1;E0?n.MathUtils.degRad:-n.MathUtils.degRad}for(let S=0,E=3;Sn.MathUtils.PI?k-=n.MathUtils.PI2:k<-n.MathUtils.PI&&(k+=n.MathUtils.PI2),k*=r,N=Math.cos(k),U=Math.sin(k),T.a=N*f-U*R,T.b=N*C-U*V,T.c=U*f+N*R,T.d=U*C+N*V}T.appliedValid=!1}}computeWorldPositions(e,r,o,t,s){let h=this.target,a=this.position,l=this.spaces,i=n.Utils.setArraySize(this.positions,r*3+2),u=null,c=e.closed,d=e.worldVerticesLength,g=d/6,m=b.NONE;if(!e.constantSpeed){let U=e.lengths;g-=c?1:2;let W=U[g];if(t&&(a*=W),s)for(let X=1;XW){m!=b.AFTER&&(m=b.AFTER,e.computeWorldVertices(h,d-6,4,u,0,2)),this.addAfterPosition(B-W,u,0,i,q);continue}for(;;j++){let O=U[j];if(!(B>O)){if(j==0)B/=O;else{let D=U[j-1];B=(B-D)/(O-D)}break}}j!=m&&(m=j,c&&j==g?(e.computeWorldVertices(h,d-4,4,u,0,2),e.computeWorldVertices(h,0,4,u,4,2)):e.computeWorldVertices(h,j*6+2,8,u,0,2)),this.addCurvePosition(B,u[0],u[1],u[2],u[3],u[4],u[5],u[6],u[7],i,q,o||X>0&&H==0)}return i}c?(d+=2,u=n.Utils.setArraySize(this.world,d),e.computeWorldVertices(h,2,d-4,u,0,2),e.computeWorldVertices(h,0,2,u,d-4,2),u[d-2]=u[0],u[d-1]=u[1]):(g--,d-=4,u=n.Utils.setArraySize(this.world,d),e.computeWorldVertices(h,2,d,u,0,2));let w=n.Utils.setArraySize(this.curves,g),M=0,I=u[0],y=u[1],P=0,v=0,x=0,S=0,E=0,T=0,p=0,L=0,Y=0,A=0,f=0,C=0,R=0,V=0;for(let U=0,W=2;UM){this.addAfterPosition(H-M,u,d-4,i,W);continue}for(;;X++){let B=w[X];if(!(H>B)){if(X==0)H/=B;else{let O=w[X-1];H=(H-O)/(B-O)}break}}if(X!=m){m=X;let B=X*6;for(I=u[B],y=u[B+1],P=u[B+2],v=u[B+3],x=u[B+4],S=u[B+5],E=u[B+6],T=u[B+7],p=(I-P*2+x)*.03,L=(y-v*2+S)*.03,Y=((P-x)*3-I+E)*.006,A=((v-S)*3-y+T)*.006,f=p*2+Y,C=L*2+A,R=(P-I)*.3+p+Y*.16666667,V=(v-y)*.3+L+A*.16666667,N=Math.sqrt(R*R+V*V),k[0]=N,B=1;B<8;B++)R+=f,V+=C,f+=Y,C+=A,N+=Math.sqrt(R*R+V*V),k[B]=N;R+=f,V+=C,N+=Math.sqrt(R*R+V*V),k[8]=N,R+=f+Y,V+=C+A,N+=Math.sqrt(R*R+V*V),k[9]=N,q=0}for(H*=N;;q++){let B=k[q];if(!(H>B)){if(q==0)H/=B;else{let O=k[q-1];H=q+(H-O)/(B-O)}break}}this.addCurvePosition(H*.1,I,y,P,v,x,S,E,T,i,W,o||U>0&&j==0)}return i}addBeforePosition(e,r,o,t,s){let h=r[o],a=r[o+1],l=r[o+2]-h,i=r[o+3]-a,u=Math.atan2(i,l);t[s]=h+e*Math.cos(u),t[s+1]=a+e*Math.sin(u),t[s+2]=u}addAfterPosition(e,r,o,t,s){let h=r[o+2],a=r[o+3],l=h-r[o],i=a-r[o+1],u=Math.atan2(i,l);t[s]=h+e*Math.cos(u),t[s+1]=a+e*Math.sin(u),t[s+2]=u}addCurvePosition(e,r,o,t,s,h,a,l,i,u,c,d){if(e==0||isNaN(e)){u[c]=r,u[c+1]=o,u[c+2]=Math.atan2(s-o,t-r);return}let g=e*e,m=g*e,w=1-e,M=w*w,I=M*w,y=w*e,P=y*3,v=w*P,x=P*e,S=r*I+t*v+h*x+l*m,E=o*I+s*v+a*x+i*m;u[c]=S,u[c+1]=E,d&&(e<.001?u[c+2]=Math.atan2(s-o,t-r):u[c+2]=Math.atan2(E-(o*M+s*y*2+a*g),S-(r*M+t*y*2+h*g)))}}b.NONE=-1,b.BEFORE=-2,b.AFTER=-3,b.epsilon=1e-5,n.PathConstraint=b})(spine||(spine={}));var spine;(function(n){class b extends n.ConstraintData{constructor(t){super(t,0,!1),this.bones=new Array}}n.PathConstraintData=b;let F;(function(o){o[o.Fixed=0]="Fixed",o[o.Percent=1]="Percent"})(F=n.PositionMode||(n.PositionMode={}));let e;(function(o){o[o.Length=0]="Length",o[o.Fixed=1]="Fixed",o[o.Percent=2]="Percent"})(e=n.SpacingMode||(n.SpacingMode={}));let r;(function(o){o[o.Tangent=0]="Tangent",o[o.Chain=1]="Chain",o[o.ChainScale=2]="ChainScale"})(r=n.RotateMode||(n.RotateMode={}))})(spine||(spine={}));var spine;(function(n){class b{constructor(r){this.toLoad=new Array,this.assets={},this.clientId=r}loaded(){let r=0;for(let o in this.assets)r++;return r}}class F{constructor(r=""){this.clientAssets={},this.queuedAssets={},this.rawAssets={},this.errors={},this.pathPrefix=r}queueAsset(r,o,t){let s=this.clientAssets[r];return s==null&&(s=new b(r),this.clientAssets[r]=s),o!==null&&(s.textureLoader=o),s.toLoad.push(t),this.queuedAssets[t]===t?!1:(this.queuedAssets[t]=t,!0)}loadText(r,o){if(o=this.pathPrefix+o,!this.queueAsset(r,null,o))return;let t=new XMLHttpRequest;t.overrideMimeType("text/html"),t.onreadystatechange=()=>{t.readyState==XMLHttpRequest.DONE&&(t.status>=200&&t.status<300?this.rawAssets[o]=t.responseText:this.errors[o]=`Couldn't load text ${o}: status ${t.status}, ${t.responseText}`)},t.open("GET",o,!0),t.send()}loadJson(r,o){if(o=this.pathPrefix+o,!this.queueAsset(r,null,o))return;let t=new XMLHttpRequest;t.overrideMimeType("text/html"),t.onreadystatechange=()=>{t.readyState==XMLHttpRequest.DONE&&(t.status>=200&&t.status<300?this.rawAssets[o]=JSON.parse(t.responseText):this.errors[o]=`Couldn't load text ${o}: status ${t.status}, ${t.responseText}`)},t.open("GET",o,!0),t.send()}loadTexture(r,o,t){if(t=this.pathPrefix+t,!this.queueAsset(r,o,t))return;if(!!!(typeof window<"u"&&typeof navigator<"u"&&window.document)&&typeof importScripts<"u")fetch(t,{mode:"cors"}).then(l=>(l.ok||(this.errors[t]="Couldn't load image "+t),l.blob())).then(l=>createImageBitmap(l,{premultiplyAlpha:"none",colorSpaceConversion:"none"})).then(l=>{this.rawAssets[t]=l});else{let a=new Image;a.crossOrigin="anonymous",a.onload=l=>{this.rawAssets[t]=a},a.onerror=l=>{this.errors[t]=`Couldn't load image ${t}`},a.src=t}}get(r,o){o=this.pathPrefix+o;let t=this.clientAssets[r];return t==null?!0:t.assets[o]}updateClientAssets(r){let t=!!!(typeof window<"u"&&typeof navigator<"u"&&window.document)&&typeof importScripts<"u";for(let s=0;s0}getErrors(){return this.errors}}n.SharedAssetManager=F})(spine||(spine={}));var spine;(function(n){class b{constructor(e){if(this._updateCache=new Array,this.updateCacheReset=new Array,this.time=0,this.scaleX=1,this.scaleY=1,this.x=0,this.y=0,e==null)throw new Error("data cannot be null.");this.data=e,this.bones=new Array;for(let r=0;r1){let s=o[o.length-1];this._updateCache.indexOf(s)>-1||this.updateCacheReset.push(s)}this._updateCache.push(e),this.sortReset(t.children),o[o.length-1].sorted=!0}sortPathConstraint(e){if(e.active=e.target.bone.isActive()&&(!e.data.skinRequired||this.skin!=null&&n.Utils.contains(this.skin.constraints,e.data,!0)),!e.active)return;let r=e.target,o=r.data.index,t=r.bone;this.skin!=null&&this.sortPathConstraintAttachment(this.skin,o,t),this.data.defaultSkin!=null&&this.data.defaultSkin!=this.skin&&this.sortPathConstraintAttachment(this.data.defaultSkin,o,t);for(let l=0,i=this.data.skins.length;l-1||this.updateCacheReset.push(s)}else for(let t=0;t0){let m=new n.DrawOrderTimeline(d),w=h.slots.length;for(let M=0;M=0;E--)P[E]=-1;let v=n.Utils.newArray(w-y,0),x=0,S=0;for(let E=0;E=0;E--)P[E]==-1&&(P[E]=v[--S]);m.setFrame(M,I,P)}a.push(m),i=Math.max(i,m.frames[d-1])}let g=t.readInt(!0);if(g>0){let m=new n.EventTimeline(g);for(let w=0;w>>1^-(h&1)}readStringRef(){let t=this.readInt(!0);return t==0?null:this.strings[t-1]}readString(){let t=this.readInt(!0);switch(t){case 0:return null;case 1:return""}t--;let s="",h=0;for(let a=0;a>4){case 12:case 13:s+=String.fromCharCode((l&31)<<6|this.readByte()&63),a+=2;break;case 14:s+=String.fromCharCode((l&15)<<12|(this.readByte()&63)<<6|this.readByte()&63),a+=3;break;default:s+=String.fromCharCode(l),a++}}return s}readFloat(){let t=this.buffer.getFloat32(this.index);return this.index+=4,t}readBoolean(){return this.readByte()!=0}}class e{constructor(t,s,h,a,l){this.mesh=t,this.skin=s,this.slotIndex=h,this.parent=a,this.inheritDeform=l}}class r{constructor(t=null,s=null){this.bones=t,this.vertices=s}}})(spine||(spine={}));var spine;(function(n){class b{constructor(){this.minX=0,this.minY=0,this.maxX=0,this.maxY=0,this.boundingBoxes=new Array,this.polygons=new Array,this.polygonPool=new n.Pool(()=>n.Utils.newFloatArray(16))}update(e,r){if(e==null)throw new Error("skeleton cannot be null.");let o=this.boundingBoxes,t=this.polygons,s=this.polygonPool,h=e.slots,a=h.length;o.length=0,s.freeAll(t),t.length=0;for(let l=0;l=this.minX&&e<=this.maxX&&r>=this.minY&&r<=this.maxY}aabbIntersectsSegment(e,r,o,t){let s=this.minX,h=this.minY,a=this.maxX,l=this.maxY;if(e<=s&&o<=s||r<=h&&t<=h||e>=a&&o>=a||r>=l&&t>=l)return!1;let i=(t-r)/(o-e),u=i*(s-e)+r;if(u>h&&uh&&us&&cs&&ce.minX&&this.minYe.minY}containsPoint(e,r){let o=this.polygons;for(let t=0,s=o.length;t=o||u=o){let c=t[l];c+(o-i)/(u-i)*(t[h]-c)=c&&v<=m||v>=m&&v<=c)&&(v>=r&&v<=t||v>=t&&v<=r)){let x=(u*y-i*M)/P;if((x>=d&&x<=w||x>=w&&x<=d)&&(x>=o&&x<=s||x>=s&&x<=o))return!0}c=m,d=w}return!1}getPolygon(e){if(e==null)throw new Error("boundingBox cannot be null.");let r=this.boundingBoxes.indexOf(e);return r==-1?null:this.polygons[r]}getWidth(){return this.maxX-this.minX}getHeight(){return this.maxY-this.minY}}n.SkeletonBounds=b})(spine||(spine={}));var spine;(function(n){class b{constructor(){this.triangulator=new n.Triangulator,this.clippingPolygon=new Array,this.clipOutput=new Array,this.clippedVertices=new Array,this.clippedTriangles=new Array,this.scratch=new Array}clipStart(e,r){if(this.clipAttachment!=null)return 0;this.clipAttachment=r;let o=r.worldVerticesLength,t=n.Utils.setArraySize(this.clippingPolygon,o);r.computeWorldVertices(e,0,o,t,0,2);let s=this.clippingPolygon;b.makeClockwise(s);let h=this.clippingPolygons=this.triangulator.decompose(s,this.triangulator.triangulate(s));for(let a=0,l=h.length;a>1,j=this.clipOutput,H=n.Utils.setArraySize(u,R+q*m);for(let O=0;O=2?(c=l,l=this.scratch):c=this.scratch,c.length=0,c.push(e),c.push(r),c.push(o),c.push(t),c.push(s),c.push(h),c.push(e),c.push(r),l.length=0;let d=a,g=a.length-4;for(let m=0;;m+=2){let w=d[m],M=d[m+1],I=d[m+2],y=d[m+3],P=w-I,v=M-y,x=c,S=c.length-2,E=l.length;for(let p=0;p0;if(P*(Y-y)-v*(L-I)>0){if(C){l.push(A),l.push(f);continue}let R=f-Y,V=A-L,k=R*(I-w)-V*(y-M);if(Math.abs(k)>1e-6){let N=(V*(M-Y)-R*(w-L))/k;l.push(w+(I-w)*N),l.push(M+(y-M)*N)}else l.push(w),l.push(M)}else if(C){let R=f-Y,V=A-L,k=R*(I-w)-V*(y-M);if(Math.abs(k)>1e-6){let N=(V*(M-Y)-R*(w-L))/k;l.push(w+(I-w)*N),l.push(M+(y-M)*N)}else l.push(w),l.push(M);l.push(A),l.push(f)}u=!0}if(E==l.length)return i.length=0,!0;if(l.push(l[0]),l.push(l[1]),m==g)break;let T=l;l=c,l.length=0,c=T}if(i!=l){i.length=0;for(let m=0,w=l.length-2;m>1;i=0;P--)m[P]==-1&&(m[P]=M[--y])}i.setFrame(c++,this.getValue(g,"time",0),m)}h.push(i),a=Math.max(a,i.frames[i.getFrameCount()-1])}if(r.events){let i=new n.EventTimeline(r.events.length),u=0;for(let c=0;c=s.length&&(s.length=r+1),s[r]||(s[r]={}),s[r][o]=t}addSkin(r){for(let s=0;s= 0.");if(r==null)throw new Error("name cannot be null.");if(o==null)throw new Error("boneData cannot be null.");this.index=e,this.name=r,this.boneData=o}}n.SlotData=b})(spine||(spine={}));var spine;(function(n){class b{constructor(s){this._image=s}getImage(){return this._image}static filterFromString(s){switch(s.toLowerCase()){case"nearest":return F.Nearest;case"linear":return F.Linear;case"mipmap":return F.MipMap;case"mipmapnearestnearest":return F.MipMapNearestNearest;case"mipmaplinearnearest":return F.MipMapLinearNearest;case"mipmapnearestlinear":return F.MipMapNearestLinear;case"mipmaplinearlinear":return F.MipMapLinearLinear;default:throw new Error(`Unknown texture filter ${s}`)}}static wrapFromString(s){switch(s.toLowerCase()){case"mirroredtepeat":return e.MirroredRepeat;case"clamptoedge":return e.ClampToEdge;case"repeat":return e.Repeat;default:throw new Error(`Unknown texture wrap ${s}`)}}}n.Texture=b;let F;(function(t){t[t.Nearest=9728]="Nearest",t[t.Linear=9729]="Linear",t[t.MipMap=9987]="MipMap",t[t.MipMapNearestNearest=9984]="MipMapNearestNearest",t[t.MipMapLinearNearest=9985]="MipMapLinearNearest",t[t.MipMapNearestLinear=9986]="MipMapNearestLinear",t[t.MipMapLinearLinear=9987]="MipMapLinearLinear"})(F=n.TextureFilter||(n.TextureFilter={}));let e;(function(t){t[t.MirroredRepeat=33648]="MirroredRepeat",t[t.ClampToEdge=33071]="ClampToEdge",t[t.Repeat=10497]="Repeat"})(e=n.TextureWrap||(n.TextureWrap={}));class r{constructor(){this.u=0,this.v=0,this.u2=0,this.v2=0,this.width=0,this.height=0,this.rotate=!1,this.offsetX=0,this.offsetY=0,this.originalWidth=0,this.originalHeight=0}}n.TextureRegion=r;class o extends b{setFilters(s,h){}setWraps(s,h){}dispose(){}}n.FakeTexture=o})(spine||(spine={}));var spine;(function(n){class b{constructor(t,s){this.pages=new Array,this.regions=new Array,this.load(t,s)}load(t,s){if(s==null)throw new Error("textureLoader cannot be null.");let h=new F(t),a=new Array(4),l=null;for(;;){let i=h.readLine();if(i==null)break;if(i=i.trim(),i.length==0)l=null;else if(l){let u=new r;u.name=i,u.page=l;let c=h.readValue();c.toLocaleLowerCase()=="true"?u.degrees=90:c.toLocaleLowerCase()=="false"?u.degrees=0:u.degrees=parseFloat(c),u.rotate=u.degrees==90,h.readTuple(a);let d=parseInt(a[0]),g=parseInt(a[1]);h.readTuple(a);let m=parseInt(a[0]),w=parseInt(a[1]);u.u=d/l.width,u.v=g/l.height,u.rotate?(u.u2=(d+w)/l.width,u.v2=(g+m)/l.height):(u.u2=(d+m)/l.width,u.v2=(g+w)/l.height),u.x=d,u.y=g,u.width=Math.abs(m),u.height=Math.abs(w),h.readTuple(a)==4&&h.readTuple(a)==4&&h.readTuple(a),u.originalWidth=parseInt(a[0]),u.originalHeight=parseInt(a[1]),h.readTuple(a),u.offsetX=parseInt(a[0]),u.offsetY=parseInt(a[1]),u.index=parseInt(h.readValue()),u.texture=l.texture,this.regions.push(u)}else{l=new e,l.name=i,h.readTuple(a)==2&&(l.width=parseInt(a[0]),l.height=parseInt(a[1]),h.readTuple(a)),h.readTuple(a),l.minFilter=n.Texture.filterFromString(a[0]),l.magFilter=n.Texture.filterFromString(a[1]);let u=h.readValue();l.uWrap=n.TextureWrap.ClampToEdge,l.vWrap=n.TextureWrap.ClampToEdge,u=="x"?l.uWrap=n.TextureWrap.Repeat:u=="y"?l.vWrap=n.TextureWrap.Repeat:u=="xy"&&(l.uWrap=l.vWrap=n.TextureWrap.Repeat),l.texture=s(i),l.texture.setFilters(l.minFilter,l.magFilter),l.texture.setWraps(l.uWrap,l.vWrap),l.width=l.texture.getImage().width,l.height=l.texture.getImage().height,this.pages.push(l)}}}findRegion(t){for(let s=0;s=this.lines.length?null:this.lines[this.index++]}readValue(){let t=this.readLine(),s=t.indexOf(":");if(s==-1)throw new Error("Invalid line: "+t);return t.substring(s+1).trim()}readTuple(t){let s=this.readLine(),h=s.indexOf(":");if(h==-1)throw new Error("Invalid line: "+s);let a=0,l=h+1;for(;a<3;a++){let i=s.indexOf(",",l);if(i==-1)break;t[a]=s.substr(l,i-l).trim(),l=i+1}return t[a]=s.substring(l).trim(),a+1}}class e{}n.TextureAtlasPage=e;class r extends n.TextureRegion{}n.TextureAtlasRegion=r})(spine||(spine={}));var spine;(function(n){class b{constructor(e,r){if(this.rotateMix=0,this.translateMix=0,this.scaleMix=0,this.shearMix=0,this.temp=new n.Vector2,this.active=!1,e==null)throw new Error("data cannot be null.");if(r==null)throw new Error("skeleton cannot be null.");this.data=e,this.rotateMix=e.rotateMix,this.translateMix=e.translateMix,this.scaleMix=e.scaleMix,this.shearMix=e.shearMix,this.bones=new Array;for(let o=0;o0?n.MathUtils.degRad:-n.MathUtils.degRad,c=this.data.offsetRotation*u,d=this.data.offsetShearY*u,g=this.bones;for(let m=0,w=g.length;mn.MathUtils.PI?S-=n.MathUtils.PI2:S<-n.MathUtils.PI&&(S+=n.MathUtils.PI2),S*=e;let E=Math.cos(S),T=Math.sin(S);M.a=E*y-T*v,M.b=E*P-T*x,M.c=T*y+E*v,M.d=T*P+E*x,I=!0}if(r!=0){let y=this.temp;s.localToWorld(y.set(this.data.offsetX,this.data.offsetY)),M.worldX+=(y.x-M.worldX)*r,M.worldY+=(y.y-M.worldY)*r,I=!0}if(o>0){let y=Math.sqrt(M.a*M.a+M.c*M.c),P=Math.sqrt(h*h+l*l);y>1e-5&&(y=(y+(P-y+this.data.offsetScaleX)*o)/y),M.a*=y,M.c*=y,y=Math.sqrt(M.b*M.b+M.d*M.d),P=Math.sqrt(a*a+i*i),y>1e-5&&(y=(y+(P-y+this.data.offsetScaleY)*o)/y),M.b*=y,M.d*=y,I=!0}if(t>0){let y=M.b,P=M.d,v=Math.atan2(P,y),x=Math.atan2(i,a)-Math.atan2(l,h)-(v-Math.atan2(M.c,M.a));x>n.MathUtils.PI?x-=n.MathUtils.PI2:x<-n.MathUtils.PI&&(x+=n.MathUtils.PI2),x=v+(x+d)*t;let S=Math.sqrt(y*y+P*P);M.b=Math.cos(x)*S,M.d=Math.sin(x)*S,I=!0}I&&(M.appliedValid=!1)}}applyRelativeWorld(){let e=this.rotateMix,r=this.translateMix,o=this.scaleMix,t=this.shearMix,s=this.target,h=s.a,a=s.b,l=s.c,i=s.d,u=h*i-a*l>0?n.MathUtils.degRad:-n.MathUtils.degRad,c=this.data.offsetRotation*u,d=this.data.offsetShearY*u,g=this.bones;for(let m=0,w=g.length;mn.MathUtils.PI?S-=n.MathUtils.PI2:S<-n.MathUtils.PI&&(S+=n.MathUtils.PI2),S*=e;let E=Math.cos(S),T=Math.sin(S);M.a=E*y-T*v,M.b=E*P-T*x,M.c=T*y+E*v,M.d=T*P+E*x,I=!0}if(r!=0){let y=this.temp;s.localToWorld(y.set(this.data.offsetX,this.data.offsetY)),M.worldX+=y.x*r,M.worldY+=y.y*r,I=!0}if(o>0){let y=(Math.sqrt(h*h+l*l)-1+this.data.offsetScaleX)*o+1;M.a*=y,M.c*=y,y=(Math.sqrt(a*a+i*i)-1+this.data.offsetScaleY)*o+1,M.b*=y,M.d*=y,I=!0}if(t>0){let y=Math.atan2(i,a)-Math.atan2(l,h);y>n.MathUtils.PI?y-=n.MathUtils.PI2:y<-n.MathUtils.PI&&(y+=n.MathUtils.PI2);let P=M.b,v=M.d;y=Math.atan2(v,P)+(y-n.MathUtils.PI/2+d)*t;let x=Math.sqrt(P*P+v*v);M.b=Math.cos(y)*x,M.d=Math.sin(y)*x,I=!0}I&&(M.appliedValid=!1)}}applyAbsoluteLocal(){let e=this.rotateMix,r=this.translateMix,o=this.scaleMix,t=this.shearMix,s=this.target;s.appliedValid||s.updateAppliedTransform();let h=this.bones;for(let a=0,l=h.length;a1e-5&&(g=(g+(s.ascaleX-g+this.data.offsetScaleX)*o)/g),m>1e-5&&(m=(m+(s.ascaleY-m+this.data.offsetScaleY)*o)/m));let w=i.ashearY;if(t!=0){let M=s.ashearY-w+this.data.offsetShearY;M-=(16384-(16384.499999999996-M/360|0))*360,i.shearY+=M*t}i.updateWorldTransformWith(c,d,u,g,m,i.ashearX,w)}}applyRelativeLocal(){let e=this.rotateMix,r=this.translateMix,o=this.scaleMix,t=this.shearMix,s=this.target;s.appliedValid||s.updateAppliedTransform();let h=this.bones;for(let a=0,l=h.length;a1e-5&&(g*=(s.ascaleX-1+this.data.offsetScaleX)*o+1),m>1e-5&&(m*=(s.ascaleY-1+this.data.offsetScaleY)*o+1));let w=i.ashearY;t!=0&&(w+=(s.ashearY+this.data.offsetShearY)*t),i.updateWorldTransformWith(c,d,u,g,m,i.ashearX,w)}}}n.TransformConstraint=b})(spine||(spine={}));var spine;(function(n){class b extends n.ConstraintData{constructor(e){super(e,0,!1),this.bones=new Array,this.rotateMix=0,this.translateMix=0,this.scaleMix=0,this.shearMix=0,this.offsetRotation=0,this.offsetX=0,this.offsetY=0,this.offsetScaleX=0,this.offsetScaleY=0,this.offsetShearY=0,this.relative=!1,this.local=!1}}n.TransformConstraintData=b})(spine||(spine={}));var spine;(function(n){class b{constructor(){this.convexPolygons=new Array,this.convexPolygonsIndices=new Array,this.indicesArray=new Array,this.isConcaveArray=new Array,this.triangles=new Array,this.polygonPool=new n.Pool(()=>new Array),this.polygonIndicesPool=new n.Pool(()=>new Array)}triangulate(e){let r=e,o=e.length>>1,t=this.indicesArray;t.length=0;for(let a=0;a3;){let a=o-1,l=0,i=1;for(;;){t:if(!s[l]){let d=t[a]<<1,g=t[l]<<1,m=t[i]<<1,w=r[d],M=r[d+1],I=r[g],y=r[g+1],P=r[m],v=r[m+1];for(let x=(i+1)%o;x!=a;x=(x+1)%o){if(!s[x])continue;let S=t[x]<<1,E=r[S],T=r[S+1];if(b.positiveArea(P,v,w,M,E,T)&&b.positiveArea(w,M,I,y,E,T)&&b.positiveArea(I,y,P,v,E,T))break t}break}if(i==0){do{if(!s[l])break;l--}while(l>0);break}a=l,l=i,i=(i+1)%o}h.push(t[(o+l-1)%o]),h.push(t[l]),h.push(t[(l+1)%o]),t.splice(l,1),s.splice(l,1),o--;let u=(o+l-1)%o,c=l==o?0:l;s[u]=b.isConcave(u,o,r,t),s[c]=b.isConcave(c,o,r,t)}return o==3&&(h.push(t[2]),h.push(t[0]),h.push(t[1])),h}decompose(e,r){let o=e,t=this.convexPolygons;this.polygonPool.freeAll(t),t.length=0;let s=this.convexPolygonsIndices;this.polygonIndicesPool.freeAll(s),s.length=0;let h=this.polygonIndicesPool.obtain();h.length=0;let a=this.polygonPool.obtain();a.length=0;let l=-1,i=0;for(let u=0,c=r.length;u0?(t.push(a),s.push(h)):(this.polygonPool.free(a),this.polygonIndicesPool.free(h)),a=this.polygonPool.obtain(),a.length=0,a.push(w),a.push(M),a.push(I),a.push(y),a.push(P),a.push(v),h=this.polygonIndicesPool.obtain(),h.length=0,h.push(d),h.push(g),h.push(m),i=b.winding(w,M,I,y,P,v),l=d)}a.length>0&&(t.push(a),s.push(h));for(let u=0,c=t.length;u=0;u--)a=t[u],a.length==0&&(t.splice(u,1),this.polygonPool.free(a),h=s[u],s.splice(u,1),this.polygonIndicesPool.free(h));return t}static isConcave(e,r,o,t){let s=t[(r+e-1)%r]<<1,h=t[e]<<1,a=t[(e+1)%r]<<1;return!this.positiveArea(o[s],o[s+1],o[h],o[h+1],o[a],o[a+1])}static positiveArea(e,r,o,t,s,h){return e*(h-t)+o*(r-h)+s*(t-r)>=0}static winding(e,r,o,t,s,h){let a=o-e,l=t-r;return s*l-h*a+a*r-e*l>=0?1:-1}}n.Triangulator=b})(spine||(spine={}));var spine;(function(n){class b{constructor(){this.array=new Array}add(d){let g=this.contains(d);return this.array[d|0]=d|0,!g}contains(d){return this.array[d|0]!=null}remove(d){this.array[d|0]=void 0}clear(){this.array.length=0}}n.IntSet=b;class F{constructor(d=0,g=0,m=0,w=0){this.r=d,this.g=g,this.b=m,this.a=w}set(d,g,m,w){return this.r=d,this.g=g,this.b=m,this.a=w,this.clamp(),this}setFromColor(d){return this.r=d.r,this.g=d.g,this.b=d.b,this.a=d.a,this}setFromString(d){return d=d.charAt(0)=="#"?d.substr(1):d,this.r=parseInt(d.substr(0,2),16)/255,this.g=parseInt(d.substr(2,2),16)/255,this.b=parseInt(d.substr(4,2),16)/255,this.a=(d.length!=8?255:parseInt(d.substr(6,2),16))/255,this}add(d,g,m,w){return this.r+=d,this.g+=g,this.b+=m,this.a+=w,this.clamp(),this}clamp(){return this.r<0?this.r=0:this.r>1&&(this.r=1),this.g<0?this.g=0:this.g>1&&(this.g=1),this.b<0?this.b=0:this.b>1&&(this.b=1),this.a<0?this.a=0:this.a>1&&(this.a=1),this}static rgba8888ToColor(d,g){d.r=((g&4278190080)>>>24)/255,d.g=((g&16711680)>>>16)/255,d.b=((g&65280)>>>8)/255,d.a=(g&255)/255}static rgb888ToColor(d,g){d.r=((g&16711680)>>>16)/255,d.g=((g&65280)>>>8)/255,d.b=(g&255)/255}}F.WHITE=new F(1,1,1,1),F.RED=new F(1,0,0,1),F.GREEN=new F(0,1,0,1),F.BLUE=new F(0,0,1,1),F.MAGENTA=new F(1,0,1,1),n.Color=F;class e{static clamp(d,g,m){return dm?m:d}static cosDeg(d){return Math.cos(d*e.degRad)}static sinDeg(d){return Math.sin(d*e.degRad)}static signum(d){return d>0?1:d<0?-1:0}static toInt(d){return d>0?Math.floor(d):Math.ceil(d)}static cbrt(d){let g=Math.pow(Math.abs(d),.3333333333333333);return d<0?-g:g}static randomTriangular(d,g){return e.randomTriangularWith(d,g,(d+g)*.5)}static randomTriangularWith(d,g,m){let w=Math.random(),M=g-d;return w<=(m-d)/M?d+Math.sqrt(w*M*(m-d)):g-Math.sqrt((1-w)*M*(g-m))}}e.PI=3.1415927,e.PI2=e.PI*2,e.radiansToDegrees=180/e.PI,e.radDeg=e.radiansToDegrees,e.degreesToRadians=e.PI/180,e.degRad=e.degreesToRadians,n.MathUtils=e;class r{apply(d,g,m){return d+(g-d)*this.applyInternal(m)}}n.Interpolation=r;class o extends r{constructor(d){super(),this.power=2,this.power=d}applyInternal(d){return d<=.5?Math.pow(d*2,this.power)/2:Math.pow((d-1)*2,this.power)/(this.power%2==0?-2:2)+1}}n.Pow=o;class t extends o{constructor(d){super(d)}applyInternal(d){return Math.pow(d-1,this.power)*(this.power%2==0?-1:1)+1}}n.PowOut=t;class s{static arrayCopy(d,g,m,w,M){for(let I=g,y=w;I=g?d:s.setArraySize(d,g,m)}static newArray(d,g){let m=new Array(d);for(let w=0;w0?this.items.pop():this.instantiator()}free(d){d.reset&&d.reset(),this.items.push(d)}freeAll(d){for(let g=0;gthis.maxDelta&&(this.delta=this.maxDelta),this.lastTime=d,this.frameCount++,this.frameTime>1&&(this.framesPerSecond=this.frameCount/this.frameTime,this.frameTime=0,this.frameCount=0)}}n.TimeKeeper=i;class u{constructor(d=32){this.addedValues=0,this.lastValue=0,this.mean=0,this.dirty=!0,this.values=new Array(d)}hasEnoughData(){return this.addedValues>=this.values.length}addValue(d){this.addedValuesthis.values.length-1&&(this.lastValue=0),this.dirty=!0}getMean(){if(this.hasEnoughData()){if(this.dirty){let d=0;for(let g=0;g>1)*a;let l=r.bone.skeleton,i=r.deform,u=this.vertices,c=this.bones;if(c==null){i.length>0&&(u=i);let w=r.bone,M=w.worldX,I=w.worldY,y=w.a,P=w.b,v=w.c,x=w.d;for(let S=o,E=h;E